Множественное связывать это (сокращать код)

В C ++ вам нужно специально объявить функцию как virtual:

class BaseClass {
    virtual void speak () {
        ...
    }
};
-1
задан dhilt 13 July 2018 в 15:33
поделиться

2 ответа

Вам необходимо зациклировать методы и вызвать .bind за каждую итерацию, чтобы ваш подход работал. Например:

const methods = ['_setDirty', '_a', '_b', ...];
methods.forEach(method => this[method] = this[method].bind(this));
1
ответ дан dhilt 17 August 2018 в 12:30
поделиться

Методы должны быть назначены с помощью цикла (в другом ответе уже упоминается):

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() {...}
...
1
ответ дан estus 17 August 2018 в 12:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: