Вход

Просмотр полной версии : Изменение значения переменной в другом модуле


davisaliw
03.07.2017, 14:36
Добрый день, возникла проблема:
есть 1 скрипта и модуль:

папка/script.js
папка/node_modules/window/index.js


Содержимое основного(script.js):

var window = require("window");
window.setActiveElement("setok");
console.log(window.activeElement ); // в консоли должно быть OK
window.setActiveElement("setbad");
console.log(window.activeElement ); // в консоли должно быть BAD


Содержимое модуля window(index.js):

var aElement = '';

function setActiveElement(a){
aElement = (a == "setok") ? 'OK' : 'BAD';
};

module.exports.setActiveElement = setActiveElement;
module.exports.activeElement = aElement;

Но после выполнение в консоли получается просто 2 пустых строчки :-E

Alexandroppolus
03.07.2017, 14:50
Ну всё правильно, в
module.exports.activeElement
была присвоена пустая строка, и такой осталась.

сделай так:

module.exports.getActiveElement = function() { return aElement; };


вызывай console.log(window.getActiveElement());

davisaliw
03.07.2017, 15:22
Ну всё правильно, в
module.exports.activeElement
была присвоена пустая строка, и такой осталась.

сделай так:

module.exports.getActiveElement = function() { return aElement; };


вызывай console.log(window.getActiveElement());
да, спасибо, понял
это работает

Yо как можно сделать чтобы конкретно window.activeElement выдавало значение? без функций :(

Alexandroppolus
03.07.2017, 17:02
как можно сделать чтобы конкретно window.activeElement выдавало значение? без функций
создать свойство:

Object.defineProperty(module.exports, 'activeElement', {
get: function() {
return aElement;
}
});


будет стильно, современно, молодёжно и по-хипстерски )

davisaliw
04.07.2017, 17:40
спасибо большое, то что нужно