Why are ES6 class methods not automatically bound to the instance?

Jordan Harband ljharb at gmail.com
Wed Feb 10 16:22:48 UTC 2016

One of the wonderful features of many prototype methods is that they can be
borrowed and .call-ed on other objects (imagine if you couldn't
`Array.prototype.slice.call(arguments)`!). Auto binding would cripple this
feature, and it seems like opting out would be harder than opting in.

I'm not sure if that was part of the reasoning or not, but I believe it was
definitely the right decision.

On Wednesday, February 10, 2016, Sam Gluck <sdgluck at gmail.com> wrote:

> Hi all,
> Hope this is the right place for a purely out-of-interest query - if not,
> apologies, please ignore!
> Why are methods on an ES6 class not automatically bound to their instance?
> Is there any public documentation/conversation, or reasoning, that can
> explain this decision? (I couldn't find any on esdiscuss.org.)
> Thank you.
> Best
> Sam
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20160210/fe739635/attachment.html>

More information about the es-discuss mailing list