美文网首页
9012年的前端应知应会的知识点——闭包

9012年的前端应知应会的知识点——闭包

作者: Kagashino | 来源:发表于2017-02-26 23:54 被阅读0次

    一般来说js外部作用域无法访问函数内的变量,原因在于函数调用过后,内部变量会被回收,比如:

    function family(){
        var father = "王健林";
    }
    console.log(father);//father is not defined
    

    如果我们返回一个函数,就可以通过作用域链访问:

        function family(){
            var father = "王健林";
            var son = "王思聪";
    
            return ()=>son;
        }
        
        var getFamily = family()();//'王思聪'
    
    

    因为引用了函数内部变量故形成了闭包
    优点:避免namespace污染
    缺点:垃圾回收困难,解决:getFamily设为null

    相关文章

      网友评论

          本文标题:9012年的前端应知应会的知识点——闭包

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