Методы должны быть назначены с помощью цикла (в другом ответе уже упоминается):
for (const prop of ['_setDirty', /* ... */])
this[prop] = this[prop].bind(this);
Использование стрелок вместо прототипов позволяет пропустить bind
, но это единственное преимущество, связанные методы прототипа, как правило, предпочтительнее из-за их гибкости.
Поскольку React используется, можно с уверенностью предположить, что используется транспилер, поэтому проект не ограничивается ES6.
Декораторы могут быть удобно использованы в ES.Next-коде для связывания методов, например bind-decorator
:
import bind from 'bind-decorator';
...
constructor(props: SignupProps) {
super(props);
}
@bind
_setDirty() {...}
...