Лучший способ связать все функции конструктора JS? - PullRequest
0 голосов
/ 22 апреля 2020

Я работаю с пользовательской реализацией шаблона проектирования 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, без функций стрелок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...