Aside from returning `this` you're suggesting an alternate syntax for arrow
functions? I don't see any value here.

More importantly, the syntax is ambiguous for unnamed functions.

```js
// already valid syntax
var self = function self(){};
```



On Mon, Jul 27, 2015 at 7:06 PM, Bucaran <jbuca...@me.com> wrote:

> Add a `self` decorator to functions that makes them return `this` by
> default.
>
>                 export function self myMethod () {
>                         // return this by default
>                 }
>
> This decorator could be used to make any function bound to the current
> scope `this` as well so:
>
>                 func(function self () { // this is bound to my dad’s scope
> })
>
> Would be roughly equivalent to:
>
>                 func(() => { // this is bound to my dad’s scope })
>
> Although I personally would favor the arrow function syntax, the `self`
> decorator could be
> used to optimize binding generators, so instead of:
>
>                 func(function* () { }.bind(this))
>
> One could write:
>
>                 func(function self* () { })
>
> Similary it could be used in promise handlers, so instead of:
>
>                 new Promise(function (resolve, reject) { }.bind(this))
>
> One could write:
>
>                 new Promise(function self (resolve, reject) { })
>
> It would be even sweeter if you didn’t need to specify the keyword
> function when writing `self` functions:
>
>                 new Promise(self (resolve, reject) { })
> _______________________________________________
> es-discuss mailing list
> es-discuss@mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
>
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to