我在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
。我该怎么做才能达到所需的输出?