我试图在构造函数中调用IIFE,并且在初始化对象时它似乎没有运行。这是我的代码:
function TitleView(el) {
this.el = el;
this.parent = el.parentNode;
this.events = {
'onclick' : function() {
console.log('title view onclick');
}
};
(function addEventHandlers() {
for (var ev in this.events) {
if (this.events.hasOwnProperty(ev)) {
this.el[ev] = this.events[ev];
console.log('abc');
}
}
}());
}
var titleView = new TitleView(document.getElementById('task-title-h1'));
我的目标是在对象初始化上附加一堆事件处理程序。如果我删除了IIFE并保留了代码的主体,则事件处理程序附加到titleView.el,但是对于IIFE,它是null
。为什么会这样? (这是纯粹的javascript,顺便说一下,不是框架。)