美文网首页
2019-06-24 闭包和立即执行函数

2019-06-24 闭包和立即执行函数

作者: 追夢的蚂蚁 | 来源:发表于2019-06-24 17:08 被阅读0次

    什么是闭包?

    var local = '变量'
    function foo(){
      console.log(local)
    }
    

    这就是一个闭包
    闭包常常用来「间接访问一个变量」。换句话说,「隐藏一个变量」。


    什么是立即执行函数?

    以一个著名的面试题为例:

    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
      }
    }
    
    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)
    }
    

    用法:(function(){})()、(function(){}())类似这样
    用途:封装功能不污染全局变量

    相关文章

      网友评论

          本文标题:2019-06-24 闭包和立即执行函数

          本文链接:https://www.haomeiwen.com/subject/yrboqctx.html