On May 29, 2012, at 10:05 PM, Rick Waldron wrote: > > On Wednesday, May 30, 2012 at 12:00 AM, Russell Leggett wrote: > >> >> >> On Tue, May 29, 2012 at 11:52 PM, John Tamplin <[email protected]> wrote: >> On Tue, May 29, 2012 at 11:50 PM, Yehuda Katz <[email protected]> wrote: >> I'm not sure if this makes sense, but something about breaking `call` and >> `apply` doesn't sit right with me. >> >> Why should an arrow function be treated any differently than an explicitly >> bound function (ie, via bind)? >> >> >> Hah, you beat me too it, I was typing in almost the exact same thing. And >> not just bind, either - even the kind of workarounds people would use before >> bind like 'var self = this' sorts of things. If someone writes code using >> the arrow, what they want is to use the lexically scoped this - they want to >> use 'this' just like any other reference captured by the closure. >> >> Any use of call or apply has to be done carefully and requires knowledge of >> how 'this' is used. It effectively becomes another parameter to the >> function. In cases of bind or an arrow function, 'this' is removed as a >> parameter and is purely another captured reference. There's no special call >> function to let you override other closed over values. Why should arrow >> function's behavior for 'this' be any different? > There is also no reason to think of => as all or nothing, jQuery and it's > APIs can still use function expressions where dynamic |this| is expected. If > a user tries to pass => to any of these APIs, they will learn quickly that > they've done it wrong. >
However, there might be some utility (at least for debugging) in having a Function.prototype.isThisBound method. It would return true for arrow functions and functions created via Function.prototype.bind Allen
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

