4 ms·
It forces programmer to make few more steps during debugging process, using conditional breakpoints in particular. not a big deal to put conditional breakpoint
by ghostdiver 13y ago
It forces programmer to make few more steps during debugging process, using conditional breakpoints in particular.
not a big deal to put conditional breakpoint in handleStreamEvent whereever it is, but in long run it just a waste of time.
this.setup = function () {
this.on('tweet', this.handleStreamEvent.bind(this, 'tweet'));
this.on('retweet', this.handleStreamEvent.bind(this, 'retweet'));
};
This pattern will be obsolote as soon as arrow function gets implemented by all major browsers:
this.setup = function () {
this.on('tweet', () => this.handleStreamEvent('tweet'));
this.on('retweet', () => this.handleStreamEvent('retweet'));
};
- deleted 13y ago[deleted]
- badman_ting 13y agoAh, but what is the value of 'this' when those handler functions are called?
- epidemian 13y agoArrow functions preserve the 'this' of their enclosing context: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/arrow_functions#Lexical_this https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe... :)
- ch0wn 13y agoThose are not equivalent. You still have to pass on the parameters: this.setup = function () { this.on('tweet', (e, data) => this.handleStreamEvent('tweet', e, data)); this.on('retweet', (e, data) => this.handleStreamEvent('retweet', e, data)); };
- ianstormtaylor 13y agoGood catch. Once they are added though, it feels a lot more readable than the "bind" alternative.