闭包写法的问题,get_ul_li[i].onmouseover=function(num){ return function(){ save_child=get_ul_li[num].childNodes[1] showIntor(save_child) } }(i)

来源:10-1 编程挑战

无月

2015-03-30 15:02

get_ul_li[i].onmouseover=function(num){

return function(){

save_child=get_ul_li[num].childNodes[1]

showIntor(save_child)

}

}(i)

这里的参数num,和最后的参数(i)有关系吗?为什么可以这样写?

写回答 关注

1回答

  • 用户已禁用
    2015-04-01 17:35:26

    加上括号就好理解了:

    get_ul_li[i].onmouseover = (function(num){
      return function(){
        save_child=get_ul_li[num].childNodes[1]
        showIntor(save_child)
      }
    })(i);

    相当于直接调用匿名函数,参数i可以传给形参num。

JavaScript进阶篇

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

468060 学习 · 21891 问题

查看课程

相似问题