1.3. js 闭包

234 阅读1分钟

闭包产生的三个条件

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

闭包的作用

使函数内部变量在函数执行完之后继续存在于内存中(延长变量使用时间)
让函数外部能够操作函数内部的数据
例如:

function A() {
  var a = "a";
  function B() {
    a += "a";
    console.log(a);
  }
  return B;
}
var fun = A();
fun();

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

欢迎关注我的前端自检清单,我和你一起成长