欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

前端高频面试题——闭包

程序员文章站 2022-06-10 10:49:53
...

一般来说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