闭包
函数A中有一个函数B,函数B中可以访问函数A中的变量或者数据,此时形成闭包
- 闭包的模式
函数模式(里面的返回作为返回值),对象模式(里面的对象作为返回值) - 闭包的作用:
缓存数据(是优点也是缺点)
举个🌰----函数模式的闭包
function f1() {
var num = 10;
return function () {
console.log(num);
}
}
var ff=f1();
ff();//10
再举个🌰----对象模式的闭包
function f3() {
return {
age:100,
getAge:function () {
console.log(this.age);
}
}
}
var obj= f3();
obj.getAge();//100
闭包的作用缓存数据;只要是想把数据保存起来,就把这个数据放在闭包中(就是在外层函数和里层函数的中间)
正因为闭包的出现缓存了数据,那么函数中的变量就没有得到及时的释放
function f1() {
var num = 10;//局部变量----函数使用后应该释放,但是闭包的情况,该变量的值没有释放,延长作用域了.
return function () {
return num++;
}
}
var ff=f1();
console.log(ff());//10
console.log(ff());//11
console.log(ff());//12
console.log(ff());//13
网友评论