3 ms·
I think one of the biggest irks for me personally when using ES6 is how `this` works. class Foo { constructor() { this.whatever = 4; } bar() { t
by kendallpark 12y ago
I think one of the biggest irks for me personally when using ES6 is how `this` works.
class Foo {
constructor() {
this.whatever = 4;
}
bar() {
this.whatever = 3;
}
}
var foo = new Foo();
blah.onSomeEvent(foo.bar);
// When SomeEvent is triggered on blah, `this` will refer to blah, not foo.
console.log(blah.whatever); // 3
console.log(foo.whatever); // 4
// You have to:
blah.onSomeEvent(foo.bar.bind(foo));
console.log(blah.whatever); // undefined
console.log(foo.whatever); // 3
Which I know is just traditional JS, but it's a little unexpected because that's not how most OO languages operate.