闭包
闭包是什么?
- 通俗来说就是拿到不属于自己的东西。闭包就是将函数内部和外部连接起来的一座桥梁。当一个内部函数被其外部函数之外的变量引用时,这就形成了闭包。
function A(){
function B(){
console.log("Hello Closure!");
}
return B;
}
var b = A();
b();//Hello Closure!
- (1)定义了一个普通函数A、(2)在A中定义了普通函数B、(3)在A中返回B、(4)执行A(),把A的返回结果赋值给变量b、(5)执行b()函数A的内部函数B被函数A外的一个变量b引用。。。所以当一个内部函数被其外部函数之外的变量引用时,就形成了一个闭包。
闭包的应用场景
- 作为返回值
- 作为参数
闭包的优点
- 形成独立的空间,延长作用域链,缓存数据。
闭包的缺点
- 内存泄漏