Пытаюсь реализовать в объекте нечто наподобие события для реакции на изменение его свойства:
obj = {
prop: -1,
onChange: function() {},
setProp: function(value) {
this.prop = value;
this.onChange;
}
}
И далее, в основном коде скрипта:
function func() {
код
}
...
obj.onChange = func;
Такой метод не работает. Думаю, я что-то делаю не так, с подобными событиями раньше не работал. Как это обычно делается?
this.onChange(); - чтобы вызвать, добавьте скобочки
Используйте один метод с разным числом параметров для get/set:
var obj = {
_prop: -1,
onChange: null,
prop: function() {
if (arguments.length == 0)
return this._prop;
this._prop = arguments[0];
if (this.onChange)
this.onChange();
}
};
obj.onChange = function() { console.log("onChange handler"); }
console.log(obj.prop());
obj.prop(3);
console.log(obj.prop());
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости