关于js闭包有好几点太清楚的东西,希望能给予解答!
关于js闭包有好几点太明白的东西,希望能给予解答!!
下面这段代码是用来鼠标放到每个图片上,自动改变背景图片的:
为什么上面的代码改成这样就不行了呢?
还有我对这段代码最后的()不是很理解,这个()的作用是什么,拿掉会出问题!
------解决方案--------------------
换工作把
------解决方案--------------------
闭包是可以包含自由(未绑定到特定对象)变量的代码块;这些变量不是在这个代码块内或者任何全局上下文中定义的,而是在定义代码块的环境中定义(局部变量)。
一个是一个代码块 一个是一个对象(变量)
下面这段代码是用来鼠标放到每个图片上,自动改变背景图片的:
for(var i = 2 ;i<11;i++){
(function(){
var x=i;
$("#img"+x).mouseover(function(){
$("#img"+x).attr("src", "/LogService/images/hover_"+(x-1)+".jpg");
});
$("#img"+x).mouseleave(function(){
$("#img"+x).attr("src", "/LogService/images/"+(x-1)+".jpg");
});
})();
}
为什么上面的代码改成这样就不行了呢?
for(var x = 2 ;x<11;x++){
(function(){
$("#img"+x).mouseover(function(){
$("#img"+x).attr("src", "/LogService/images/hover_"+(x-1)+".jpg");
});
$("#img"+x).mouseleave(function(){
$("#img"+x).attr("src", "/LogService/images/"+(x-1)+".jpg");
});
})();
}
还有我对这段代码最后的()不是很理解,这个()的作用是什么,拿掉会出问题!
------解决方案--------------------
换工作把
------解决方案--------------------
闭包是可以包含自由(未绑定到特定对象)变量的代码块;这些变量不是在这个代码块内或者任何全局上下文中定义的,而是在定义代码块的环境中定义(局部变量)。
一个是一个代码块 一个是一个对象(变量)
for(var i = 0 ;i<2;i++){