闭包

作者: 楼水流云 | 来源:发表于2019-10-07 21:00 被阅读0次

    什么是闭包 函数引用外部变量就是闭包
    1
    var local = '闭包'
    function foo(){
    console.log(local)
    }

    2
    var fn = function(){
    var a = {name:a}
    return function(){
    return a
    }
    }()
    console.log(fn())

    解决方法 使用立即执行函数 立即执行函数的结果是一个函数 把所有步骤函数都拆开

    function(j){
    console.log(j)
    }(a)

    闭包有什么作用:暴露局部变量,把局部变量通过函数暴露给外面
    外面变量访问不到函数里的局部变量 但是可以通过内部函数操作局部变量 再return出去

    面试题:
    var items = document.querySelectorAll('li')

    for(var i = 0; i < items.length; i++){
    var temp = function(j){
    console.log(j)
    }
    temp(i)这里把每次循环的i传进来了

    items[i].onclick = function(){
        console.log(i)
    }
    

    }

    相关文章

      网友评论

          本文标题:闭包

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