关键词

一分钟理解js闭包

一分钟理解JS闭包

什么是闭包

闭包是一种函数,它的特殊之处在于它可以访问在它外部定义的变量,即使在它外部函数已经执行完毕的情况下,闭包仍然可以访问外部函数的变量。

闭包的原理

当一个函数运行完毕后,函数内部的所有变量都会被销毁。但是,当一个内部函数引用了它外部函数的变量时,这些变量不会被立即销毁,而会被安全的存储在内存中。这个引用外部变量的内部函数就成为了闭包。

闭包的示例

下面是一个闭包的简单示例:

function outerFunction() {
  var outerVariable = "Hello";
  function innerFunction() {
    console.log(outerVariable);
  }
  return innerFunction;
}

var inner = outerFunction();
inner(); // 输出 "Hello"

在这个示例中,innerFunction被定义在outerFunction内部,并访问了outerFunction内部的变量outerVariable。outerFunction返回了innerFunction,所以outerVariable被安全的存储在内存中。因此,执行inner()时,会输出 "Hello"。

下面是另一个示例,用闭包实现一个计数器:

function counter() {
  var count = 0;
  function increment() {
    count++;
    console.log(count);
  }
  return increment;
}

var inc = counter();
inc(); // 输出 1
inc(); // 输出 2
inc(); // 输出 3

在这个示例中,counter函数返回了一个内部函数increment,increment通过闭包访问了counter内部的变量count。每次调用increment时,count的值会增加并输出到控制台。

这样,我们一分钟内就可以理解JS闭包了。

本文链接:http://task.lmcjl.com/news/11530.html

展开阅读全文