美文网首页
立即执行函数

立即执行函数

作者: jie_zhao | 来源:发表于2019-07-11 15:29 被阅读0次

    1、立即执行函数是什么?

    声明一个匿名函数,立马调用这个匿名函数。下面就是一个立即执行函数:

    (function() {console.log('我就是立即执行函数')})()        


    2、它有什么用呢?

    它的作用就是创建一个独立的作用域,不让外面访问,避免变量污染。

    下面以一个常见的面试题为例:

    var lis = document.getElementsByTagName('li')
    for (var i=0; i<10; i++) {
        lis[i].onClick = function() {console.log(i)}
    }
    /* 只会打印出很多10,为什么呢? 因为 i 声明提前之后,它的作用域就是最外面的作用域,而不是给每个 li 都单独创建一个作用域 i。那么怎么让它打印出0,1。。。这些数字呢?这时候就该立即执行函数出场了,修改如下
    */
    var lis = document.getElementsByTagName('li')
    for (var i=0; i<10; i++) {
        !(function (i) {
            lis[i].onClick = function () {
                console.log(i)
            }
        })(i)
    }

    相关文章

      网友评论

          本文标题:立即执行函数

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