在自执行功能中访问兄弟函数

时间:2017-03-16 23:47:16

标签: javascript function

我觉得我在这里犯了一个非常简单的错误。本质上,我只是试图从自执行函数中的另一个函数访问函数。有没有理由不调用printConfirmation?似乎eventHandlers也没有正常运作。

(function(){

  var targetZone = document.getElementById('target-zone');

  var eventHandlers = function(){
    targetZone.addEventListener('click', printConfirmation); 
  };

  var printConfirmation = function(){
    targetZone = targetZone.classList;
    targetZone.add('clicked');
  }; 

})();

1 个答案:

答案 0 :(得分:1)

这是一个悬挂问题,更改为函数声明而不是函数表达式,它将起作用:

(function(){

  var targetZone = document.getElementById('target-zone');

  function eventHandlers(){
    targetZone.addEventListener('click', printConfirmation); 
  }

  function printConfirmation(){
    targetZone = targetZone.classList;
    targetZone.add('clicked');
  }

  eventHandlers();
})();

编辑:另外,正如丹尼尔指出的那样,你需要实际调用eventHandlers()