Почему именно bind(this) необходим в конструкторах React?

Общеизвестно, что при определении компонента React вам необходимо связать методы вашего класса внутри конструктора класса, чтобы иметь доступ к this.props и т. д. внутри этих методов.

Мой вопрос просто "почему?" В JS разве this не определяется как объект метода при вызове функции как метода объекта?


person Ersin Akinci    schedule 03.07.2018    source источник
comment
Зависит от того, как функция вызывается.   -  person Kevin B    schedule 04.07.2018
comment
Разве в JS this не определяется как объект метода при вызове функции как метода объекта? Верно. Но обработчики событий обычно не вызываются как методы. Вы просто передаете функцию в качестве обработчика событий, а системы обработки событий вызывают эту функцию как обычную функцию (она не может делать ничего другого). Таким образом, вы должны убедиться, что this правильно указано в вашем обработчике событий. Если метод не используется в качестве обработчика событий, то, скорее всего, нет необходимости его .bind.   -  person Felix Kling    schedule 04.07.2018
comment
Спасибо, @FelixKling! Это имело смысл.   -  person Ersin Akinci    schedule 04.07.2018