您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關JavaScript中如何使用匿名函數(shù),文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
循環(huán)結構中的JavaScript匿名函數(shù)
先看下面的代碼
<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()">
點擊按鈕之后,會在table11中插入5行,行的雙擊事件就是使用了JavaScript匿名函數(shù)。
試想,點擊第2行和第3行,你會看到什么,會是alert('tr0')和alert('tr1')嗎,和你想的一樣?
很顯然不是我想要的結果,而是彈出了alert('tr5'),真是有點兒怪哦!可以肯定的是問題肯定是出在JavaScript匿名函數(shù)上,有可能是這個行的雙擊事件都指向了同一下JavaScript匿名函數(shù),不知道各位有什么看法?
而把上述代碼修改成如下代碼,就會得到我們想到的結果。
<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()">
關于JavaScript中如何使用匿名函數(shù)就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。