码迷,mamicode.com
首页 > 其他好文 > 详细

立即执行函数

时间:2020-03-18 11:29:55      阅读:63      评论:0      收藏:0      [点我收藏+]

标签:https   class   点击   而不是   cli   lis   onclick   nbsp   nts   

立即执行函数:

1.声明一个匿名函数

2.马上调用这个匿名函数

(function(){alert("匿名函数")})()

 

作用:

创建一个独立的作用域,这个作用域里的变量不会被外面访问到,避免变量污染

 

经典面试题:

var liList = ul.getElementsByTagName(‘li‘)
for(var i=0; i<6; i++){
  liList[i].onclick = function(){
    alert(i) // 为什么 alert 出来的总是 6,而不是 0、1、2、3、4、5
  }
}

因为用户是在for循环运行结束之后才点击的,i已经为6了

给每个li创立一个独立作用域:
var liList = ul.getElementsByTagName(‘li‘)
for(var i=0; i<6; i++){
  !function(ii){
    liList[ii].onclick = function(){
      alert(ii) // 0、1、2、3、4、5
    }
  }(i)
}

来源:https://zhuanlan.zhihu.com/p/22465092

立即执行函数

标签:https   class   点击   而不是   cli   lis   onclick   nbsp   nts   

原文地址:https://www.cnblogs.com/zhoujingye/p/12516034.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!