I've been thinking a lot about the proposed arrows and its affect on `this`.

To start, I'm a worried that `call` and `apply` don't "work" on arrow
function. This is of course the correct behavior for jQuery-like use-cases,
but the proposed semantics interfere with more intentional uses of `call`
and `apply`.

I'd like to propose the following:

* `call` and `apply` modify `this` in an arrow function
* `softCall` and `softApply` do not modify `this` in arrow functions, but
do modify `this` in regular functions

This would allow libraries like jQuery to continue providing advisory
`this` bindings without interfering with intentional modifications to the
`this` binding. (jQuery could do `softCall = Function.prototype.softCall ||
Function.prototype.call` to quickly "polyfill").

I'm not sure if this makes sense, but something about breaking `call` and
`apply` doesn't sit right with me.

Thoughs?

Yehuda Katz
(ph) 718.877.1325
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to