Я работаю с пользовательской реализацией шаблона проектирования Flux, и в моем магазине много функций, которые регистрируются в глобальном диспетчере. В результате мне приходится связывать все эти функции, чтобы сохранить ссылку на «это».
Проблема в том, что код очень многословен. Мне приходится писать одно и то же имя функции три раза для каждой функции. Ниже приведен пример того, о чем я говорю. Я должен написать this.selectClassList три раза. Один раз для определения функции, затем еще два раза, чтобы правильно связать ее.
this.selectClassList = function(){
this.forumSelected = false;
this.classListSelected = true;
this.isDocsTabSelected = false;
this.pub();
}
this.selectClassList = this.selectClassList.bind(this)
this.classSelectId = this.dis.reg('showClassList', this.selectClassList);
Это было бы хорошо, если бы я связывал только одну или две функции из хранилищ. Но есть десятки таких функций.
Есть ли какой-нибудь способ привязать ВСЕ функции к текущему контексту, который бы избавил вас от необходимости писать одно и то же имя функции три раза?
Я пробовал что-то вроде Object.keys (obj ), но это не работает с функциями конструктора.
Примечание: мое решение должно быть ES5, без функций стрелок.