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)
}