объявить события в литерале объекта JavaScript - PullRequest
0 голосов
/ 01 ноября 2018

Обычно, когда я работаю с JavaScript в объектном литеральном стиле, я загружаю события для страницы следующим образом:

var myObject = {
    button: $('button'),
    init: function() {
        button.on('click', $.proxy(this.myMethod, this));
    },
    myMethod: function(event) {
        alert('Hello');
    }
};
myObject.init();

Теперь я хотел бы иметь массив событий в моем свойстве конфигурации, как это

var myObject = {
    bindActions: [
        $('#employee_data').on('click', $.proxy(this.myMethod, this))
    ],
    init: function() {
        // here I assume I need to do something like this 
        // to load all events from this.bindActions
        // this.bindActions.forEach(function(action) {

        //     ?????? 

        // });

    },
    myMethod: function(event) {
        alert('Hello');
    };
};
myObject.init();

Пожалуйста, помогите мне понять, как я могу прикрепить эти события в цикле, с некоторыми объяснениями? Большое спасибо заранее

1 Ответ

0 голосов
/ 01 ноября 2018

Если нет особой причины, по которой вы хотите перебирать массив (возможно, точнее контролировать, какие события связаны и когда?), Вам лучше включить bindActions в саму функцию, которая выполняется при запуске myObject.init(), вот так;

var myObject = {
    bindActions: function(){
        $('#employee_data').on('click', $.proxy(this.myMethod, this));

        // bind as many as you want here
        //$('#employee_data').on('..', ...)
    },
    init: function() {
        // bind all events in bindActions when init() is executed
        this.bindActions(); 
    },
    myMethod: function(event) {
        alert('Hello');
    };
};

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