self functions
Bucaran
jbucaran at me.com
Tue Jul 28 02:06:10 UTC 2015
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) { })
More information about the es-discuss
mailing list