JS闭包产生条件、作用、生命周期

1. 概括

闭包就是能够读取其他函数内部变量的函数,或者子函数在外调用(子函数所在的夫函数的作用域不会被释放)

2. 闭包产生条件

  • 函数嵌套
    例如:
function A() {
	function B() {
    }
}
  • 内部函数引用了外部函数中的数据(属性、函数)
    例如:
function A() {
  var a = "a";
  function B() {
    console.log(a);
  }
}
  • 执行外部函数(也可理解为定义内部函数)
    例如:
function A() {
  var a = "a";
  function B() {
    console.log(a);
  }
}
A();

3. 闭包的作用

  • 使函数内部变量在函数执行完之后继续存在于内存中(延长变量使用时间)
  • 让函数外部能够操作函数内部的数据
    例如:
function A() {
  var a = "a";
  function B() {
    a += "a";
    console.log(a);
  }
  return B;
}
var fun = A();
fun();

可以得出在全局中能通过fun来操作函数A()内部的变量a

4. 闭包的生命周期

  • 产生:内部函数被定义执行时
  • 死亡:内部函数不再被调用(成为垃圾对象)

版权声明:本文为weixin_44901846原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。