如何在for循环中实现Closure

时间:2015-03-30 12:40:53

标签: javascript jquery closures

我在SO

上读到了这个
  

第一次尝试时,闭包是一个难以理解的概念

他们当然是最棘手的!所以,我正在开展一个JavaScript闭包练习

//What changes required to for loop so that triggering loop1 will give output as 1
for(var i=0;i<10;i++)
  $(document).on('loop'+i, function(){
     console.log(i);
  })
$(document).trigger('loop1');

以上将输出10。基本上,我在触发事件loop1,我希望输出为1。我在上面尝试的更改是

for(var i=0;i<10;i++)
  $(document).on('loop'+i, (function(){
      return function(){console.log(i)}
  })());
$(document).trigger('loop1');

但这也没有帮助。它还在给我10。我该怎么做才能达到所需的输出?

0 个答案:

没有答案