什么是闭包?
闭包是作用域的体现,体现函数外不能访问函数内的数据,函数内可以访问上一级作用域的数据
闭包一定是函数内嵌套函数,内层函数具备多重身份,可以访问外层函数的数据,又可以在全局上被调用
闭包的实现
经典写法一
(function(){
let i=1; //闭包作用域
window.show=function(){
return ++i;
}
})();
经典写法二
let show = function(){
let i=1; //闭包作用域
return function(){
return ++i;
}
}();
闭包的作用
闭包主要用于封装各种插件、库,将所有实现都封装在闭包内部,避免造成全局污染