Модульный подход - Как можно задавать или изменять переменные внутри модуля?
В модуле имеется переменная - хранящая кнопку выхода. В методе init я пытаюсь ее инициализировать, чтобы работать с ней в других методах данного модуля, а в дальнейшем дать возможность обращаться к ней, вернув её как поле объекта. Однако значение logoutBtn остаётся undefined даже после вызова метода init.
Каким образом можно задавать/изменять переменные внутри модуля и в чем некорректность моего подхода?
var myModule = (function () {
var logoutBtn;
var init = function () {
logoutBtn = document.getElementById("logoutButton");
};
...
return {
init: init,
...
logoutButton: logoutBtn,
...
};
})();
Ответы (1 шт):
Автор решения: Stranger in the Q
→ Ссылка
Вероятно Вам хватит такой конструкции:
init: function(){
this.logoutButton = ...;
}
но наверняка и внутри модуля надо будет обращаться к этому же полю, по этому, вероятно, надо сделать как то так:
var module = {
init:...,
logoutButton:...
}
return module;
Или уже так:
var myModule = (function () {
var logoutBtn;
var init = function () {
logoutBtn = document.getElementById("logoutButton");
};
var module = {
init: init
};
Object.defineProperty(module, "logoutButton", {
get: function() {
return logoutBtn;
}
});
return module;
})();