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