关于JS所谓闭包问题 var aa=new object()aa.bb=function(){}aa.cc=function(){ for(var i=0;i<5;i++) { ss=aa.bb()}}如何让 ss=aa.bb() 此句能够循环执行?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 var aa=new Object()aa.bb=function(){ return "asdfl";}aa.cc=function(){ for(var i=0;i<5;i++) { ss=aa.bb(); alert(ss); }}aa.cc(); 搞错了,搞错了,新问题如下 for(var i=0;i<obj.length;i++){ with(obj[i]){ onmouseover=function(){style.background=Color[i];} }} 想为每一个对象分配一个底色,可是 i 传不进去,怎么办? for(var i=0;i<obj.length;i++){ with(obj[i]){ onmouseover=function(){ style.background=Color[i]; }(i); }} for(var i=0;i<obj.length;i++){ with(obj[i]){ onmouseover=function(i){ style.background=Color[i]; }(i); }} for (var i = 0; i < obj.length; i++) { (function(i){ with(obj[i]) { onmouseover = function() { style.background = Color[i]; } } })(i); } function $(id) { return document.getElementById(id); } window.onload = function() { for(var i = 1; i < 9; i++) { $("Div" + i.toString()).onmouseover = function(i) { return function() { var tmp = i.toString(); $("Div" +i).style.backgroundColor = "#" +tmp + tmp+tmp+tmp+tmp+tmp; } }(i); } }; 只有他是正确的!谢谢通过 ( function(i){} )(i) 来传递 i,但 obj 为何不用传递? 我用了7楼的方法 for(var i=0;i<obj.length;i++){ with(obj[i]){ onmouseover=function(i){ return function(){ style.backgroundColor='Color[i] } }(i) } }至少是哪一个函数在传递参数 i 上,该代码比较直观,4楼的代码,就差一个 return function() 函数了怎的就闭包了,还是不甚了解。 在一个方法里面定义另一个方法时,就会出现闭包,当由于循环出现的时候,变量只能取得最后的值,解决的方法参考 http://blog.csdn.net/xiaofan_sap/archive/2009/11/05/4772625.aspx 6、7楼使用闭包正解,该问题在Javascript Good Parts里面的闭包部分有说明。 function $(id) { return document.getElementById(id); } window.onload = function() { for(var i = 1; i < 9; i++) { $("Div" + i.toString()).onmouseover = function(i) { return function() { var tmp = i.toString(); $("Div" +i).style.backgroundColor = "#" +tmp + tmp+tmp+tmp+tmp+tmp; } }(i); } }; JS数组存取操作 Js 保存信息并追加信息 拖动层时,设置层的onmouseup不起作用是怎么回事啊 帮忙用replace把\改成\\```` 用JavaScript写网络测速,写出来的程序结果和实际结果有出路,那位高人帮我看看代码哪里出问题了。 (续)100分!!哪位好心人帮帮小弟啊!!!!!!!!!!!!! 请教:下面的代码在什么时候会执行到 result = true; 怎样做一个部分透明的层? sos!怎样实现滚动新闻?最好有源代码。谢谢! bootStrapTable 配置问题 改后滑动门就不正常了,请教高手帮我指点一下还须修改哪些代码 JS新手求助,背景图片切换不了……
aa.bb=function(){
return "asdfl";
}aa.cc=function(){
for(var i=0;i<5;i++)
{ ss=aa.bb();
alert(ss);
}
}aa.cc();
新问题如下 for(var i=0;i<obj.length;i++){
with(obj[i]){
onmouseover=function(){style.background=Color[i];}
}} 想为每一个对象分配一个底色,可是 i 传不进去,怎么办?
with(obj[i]){
onmouseover=function(){
style.background=Color[i];
}(i);
}
}
with(obj[i]){
onmouseover=function(i){
style.background=Color[i];
}(i);
}
}
for (var i = 0; i < obj.length; i++) {
(function(i){
with(obj[i]) {
onmouseover = function() {
style.background = Color[i];
}
}
})(i);
}
return document.getElementById(id);
}
window.onload = function() {
for(var i = 1; i < 9; i++)
{
$("Div" + i.toString()).onmouseover = function(i) {
return function() {
var tmp = i.toString();
$("Div" +i).style.backgroundColor = "#" +tmp + tmp+tmp+tmp+tmp+tmp;
}
}(i);
}
};
只有他是正确的!谢谢
通过 ( function(i){} )(i) 来传递 i,但 obj 为何不用传递?
for(var i=0;i<obj.length;i++){
with(obj[i]){
onmouseover=function(i){
return function(){ style.backgroundColor='Color[i] }
}(i)
}
}至少是哪一个函数在传递参数 i 上,该代码比较直观,4楼的代码,就差一个 return function() 函数了怎的就闭包了,还是不甚了解。
return document.getElementById(id);
}
window.onload = function() {
for(var i = 1; i < 9; i++)
{
$("Div" + i.toString()).onmouseover = function(i) {
return function() {
var tmp = i.toString();
$("Div" +i).style.backgroundColor = "#" +tmp + tmp+tmp+tmp+tmp+tmp;
}
}(i);
}
};