为了账号安全,请及时绑定邮箱和手机立即绑定

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";}


};


}  


正在回答

2 回答

上面那种是匿名函数的创建并调用,你改的东西就算是个匿名函数但是也缺少个调用,稍作调整就可以使用,下面给你几个调整解决方案

方案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)就是对这个匿名函数的调用

}  


0 回复 有任何疑惑可以回复我~
#1

笨小孩日记 提问者

非常感谢!
2016-05-08 回复 有任何疑惑可以回复我~

第二种形式缺少函数名。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468188    人
  • 解答问题       21891    个

本课程从如何插入JS代码开始,带您进入网页动态交互世界

进入课程

js函数调用问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信