Hacker News new | ask | show | jobs
by SilurianWenlock 1807 days ago
Why not?
2 comments

Untechnically speaking: Arrow functions preserve the `this` in their declaration point, whereas regular functions change `this` if they're called as methods.

    class Foo {
      thisCouldBeAnything() {return this}
      thisIsDefinitelyFoo = () => this
    }
    
    new Foo().thisCouldBeAnything.call('use me')
    // 'use me'
    
    new Foo().thisIsDefinitelyFoo.call('unused')
    // Foo
Since the intention is often to keep `this` to refer to the class, people have been binding every single method in the class constructor, but this is no longer necessary thanks to arrow functions.
New features were added to the language that make this sort of stuff unecessary.