javascript 循环中使用匿名函数
一、什么是匿名函数?
在Javascript定义一个函数一般有如下三种方式:
函数关键字(function)语句:
function fnMethodName(x){alert(x);}var fnMethodName = function(x){alert(x);}var fnMethodName = new Function('x','alert(x);')var f = function fact(x) { if (x < = 1) return 1; else return x*fact(x-1);};var y = "global";function constructFunction() { var y = "local"; return new Function("return y"); // 无法获取局部变量}alert(constructFunction()()); // 输出 "global"function(){ alert(1);}();(function(){ alert(1);} ) ( ); ( function(){ alert(2);} ( ) );void function(){ alert(3);}()<SCRIPTLANGUAGESCRIPTLANGUAGE="JavaScript"> functionDelete_Row(i) { alert(i); } functiontest() { for(vari=0;i<5;i++) { vartable11=document.getElementById("table11"); vartr11=table11.insertRow(); vartrstr="tr"+tr11.rowIndex; tr11.id=trstr; tr11.ondblclick=function() { Delete_Row(trstr); }; vartd11=tr11.insertCell(); td11.innerHTML=i; td11=tr11.insertCell(); td11.innerText="我爱你"; td11=tr11.insertCell(); td11.innerText="笨蛋"; td11=tr11.insertCell(); } } //--> </SCRIPT> <tableidtableid="table11"border=1> <tbody> <tr> <td>第一列</td> <td>第二列</td> <td>第三列</td> </tr> </tbody> </table> <br> <inputtypeinputtype="button"value="GO"onclick="test()"> <SCRIPTLANGUAGESCRIPTLANGUAGE="JavaScript"> functionDelete_Row(i) { alert(i); } functiontest() { for(vari=0;i<5;i++) { vartable11=document.getElementById("table11"); vartr11=table11.insertRow(); vartrstr="tr"+tr11.rowIndex; tr11.id=trstr; tr11.ondblclick=f(trstr); vartd11=tr11.insertCell(); td11.innerHTML=i; td11=tr11.insertCell(); td11.innerText="我爱你"; td11=tr11.insertCell(); td11.innerText="笨蛋"; td11=tr11.insertCell(); } } functionf(i) { return function() { Delete_Row(i); } } //--> </SCRIPT> <tableidtableid="table11"border=1> <tbody> <tr> <td>第一列</td> <td>第二列</td> <td>第三列</td> </tr> </tbody> </table> <br> <inputtypeinputtype="button"value="GO"onclick="test()">