您如何向知道其所包含概念的人(例如函数,变量等)解释JavaScript闭包,但不了解闭包本身?
我已经看过维基百科上给出的Scheme示例,但遗憾的是它并没有帮助.
我有3 .a和一个函数,它应该警告数字[0,1或2] .a属于mouseover-ed时:
?function a(){
for(var c=0; c<3; c++){
alert(c);
$('.a:eq('+c+')').mouseover(function(){alert(c)});
}
}
Run Code Online (Sandbox Code Playgroud)
当我执行它时,第一个alert(c)被触发三次,消息分别为"0","1","2",如预期的那样.
然而,当mouseover .a,无论哪个.a它是,它提醒"3".
如果有人能解释为什么会发生这种情况并提供解决方案,我将不胜感激.