闭包

闭包

闭包是什么?

  1. 通俗来说就是拿到不属于自己的东西。闭包就是将函数内部和外部连接起来的一座桥梁。当一个内部函数被其外部函数之外的变量引用时,这就形成了闭包。
function A(){    
   function B(){
       console.log("Hello Closure!");
    }    
    return B;
}
var b = A();
b();//Hello Closure!
  1. (1)定义了一个普通函数A、(2)在A中定义了普通函数B、(3)在A中返回B、(4)执行A(),把A的返回结果赋值给变量b、(5)执行b()函数A的内部函数B被函数A外的一个变量b引用。。。所以当一个内部函数被其外部函数之外的变量引用时,就形成了一个闭包。

闭包的应用场景

  1. 作为返回值
  2. 作为参数

闭包的优点

  1. 形成独立的空间,延长作用域链,缓存数据。

闭包的缺点

  1. 内存泄漏
原文地址:https://www.cnblogs.com/lml-lml/p/7096404.html