js函數(shù)調(diào)用問題
for(var i=0;i<objTr.length;i++){
? ? (function(i){
? ? ? ? objTr[i].onmousemove=function(){objTr[i].bgColor="red";}
objTr[i].onmouseout = function(){objTr[i].bgColor = "white";}
}(i));
} ?
將其改成以下形式,為什么就不能執(zhí)行了??
for(var i=0;i<objTr.length;i++){
? ? function(i){
? ? ? ? objTr[i].onmousemove=function(){objTr[i].bgColor="red";}
objTr[i].onmouseout = function(){objTr[i].bgColor = "white";}
};
} ?
2016-05-01
上面那種是匿名函數(shù)的創(chuàng)建并調(diào)用,你改的東西就算是個(gè)匿名函數(shù)但是也缺少個(gè)調(diào)用,稍作調(diào)整就可以使用,下面給你幾個(gè)調(diào)整解決方案
方案1是不用匿名函數(shù)
for(var i=0;i<objTr.length;i++){
? ??function a(i){
? ? ? ? objTr[i].onmousemove=function(){objTr[i].bgColor="red";}
objTr[i].onmouseout = function(){objTr[i].bgColor = "white";}
}
a(i);//調(diào)用
} ?
方案2,繼續(xù)用匿名函數(shù)的其他用法
for(var i=0;i<objTr.length;i++){
? ?void function(i){//void可以換成~ ?+ ?- !這幾種符號(hào),依然有效
? ? ? ? objTr[i].onmousemove=function(){objTr[i].bgColor="red";}
objTr[i].onmouseout = function(){objTr[i].bgColor = "white";}
}(i);//尾巴上這個(gè)(i)就是對(duì)這個(gè)匿名函數(shù)的調(diào)用
} ?
2016-04-30
第二種形式缺少函數(shù)名。