class Foo { bind function bar() { console.log(this); } }
class Foo { bar = () => { console.log(this); } }
See https://github.com/tc39/proposal-class-fields.
Using arrow functions at the class level would also solve this without adding new syntax. Edit, this is a thing already: https://babeljs.io/docs/plugins/transform-class-properties/
foo.bar.bind(somethingElse);
How would the callee know that this would potentially conflict?
does this confusion not exist now?
See https://github.com/tc39/proposal-class-fields.