В веб-приложении на React есть примерно такой код.
const myObj = {
foo: () => {
console.log(this)
}
}
class MyForm extends React.Component {
constructor(props) {
super(props);
this.state = {
...
}
this.handleSubmit = this.handleSubmit.bind(this)
}
async handleSubmit(event) {
...
console.log(this) // объект класса MyForm
myObj.foo() // undefined, а ожидаю получить тот же самый объект
...
}
}
Почему так? Как правильно в таких случаях делать?
Если посмотреть в отладчике браузера скомпилированный JS, то получится
const myObj = {
foo: () => {
console.log(undefined);
}
};