温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

JavaScript中如何使用匿名函数

发布时间:2021-06-23 15:06:14 来源:亿速云 阅读:123 作者:Leah 栏目:web开发

这篇文章将为大家详细讲解有关JavaScript中如何使用匿名函数,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

循环结构中的JavaScript匿名函数

先看下面的代码

<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匿名函数。

试想,点击第2行和第3行,你会看到什么,会是alert('tr0')和alert('tr1')吗,和你想的一样?

很显然不是我想要的结果,而是弹出了alert('tr5'),真是有点儿怪哦!可以肯定的是问题肯定是出在JavaScript匿名函数上,有可能是这个行的双击事件都指向了同一下JavaScript匿名函数,不知道各位有什么看法?

而把上述代码修改成如下代码,就会得到我们想到的结果。

<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中如何使用匿名函数就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI