У меня есть объект функции JavaScript, определенный следующим образом:Назначение функции собственности объекта функции в
var minimal = (function() {
var handler = undefined;
var test = function() {
console.log(typeof handler);
if (typeof handler === 'function') {
handler();
}
};
var API = {
handler: handler,
test: test
};
return API;
}());
Я хочу, чтобы иметь возможность вводить функцию в объект по желанию.
Когда я устанавливаю функцию в этой собственности, функция не присваивается свойству объекта, он по-прежнему показывает, как undefined
:
minimal.handler = function() {
console.log('handled');
};
minimal.test();
ли я просто идти о нем все не так? Есть ли лучший образец, который я должен использовать?
РЕШЕНИЕ
После прочтения комментариев и ответов, я понял, что проблема в том, что я перезаписать значение в API
объекте: не установка переменного обработчика объекта. Это минимальный рабочий пример:
var minimal = (function() {
var handler = undefined;
var test = function() {
console.log(typeof handler);
if (typeof handler === 'function') {
handler();
}
};
var setHandler = function(func) {
handler = func;
};
var API = {
setHandler: setHandler,
test: test
};
return API;
}());
minimal.setHandler(function() {
console.log('handled');
});
minimal.test();
Не воспроизводя с этим кодом. – Scimonster