什么是闭包

90 阅读1分钟

1.闭包的作用

1.通过一些方法,把函数内部的变量(私有变量)转化为全局变量可以让其他变量使用

2.保护里面的私有变量不受外界的干扰

3.形成不销毁的作用域,可以把里面的变量保存下来,在下面继续使用

2.怎么使用闭包

闭包里面的私有变量变成全局变量

    function jquery(){
    }
    //把jquer 这个方法通过window添加属性暴漏到全局
    window.jquery=window.$=jquery;
})()

在使用的时候: jquery() 或者$()

2.闭包的例子:

    return function (n){
       console.log(n+(++i));
    }
}
var f=fn(2);
f(3);
fn(5)(6);
fn(7)(8);
f(4)

3.很多地方都可以使用,比较常用的有两个,一个就是可以继续使用函数内部的变量,普通函数里面的变量是私有变量,不能在函数外使用,但是闭包以后就可以。

另一个是就是让这些变量一保存在函数里,但是保存的内容有限,所有别乱用闭包

比较常用的就是自调用函数和for循环里面包函数

    // 之前i找到的上级作用域是window,现在我们手动增加一层作用域,用一个闭包的形式,里面把点击事件赋值
    //给了外面的元素,被占用,形成不销毁的作用域.n是私有变量,当点击页面上的元素的时候,就会找闭包作用域
    //中的私有变量n
    
    (function(n){
       lis[n].onclick = function () {
            change(n);
        }
    })(i)
        
    }