在构造函数内部调用IIFE

时间:2015-07-26 20:33:10

标签: javascript scope iife

我试图在构造函数中调用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,顺便说一下,不是框架。)

0 个答案:

没有答案