闭包

108 阅读1分钟

一个函数和对其周围状态(lexical environment,词法环境)的引用捆绑在一起(或者说函数被引用包围),这样的组合就是闭包(closure)。也就是说,闭包让你可以在一个内层函数中访问到其外层函数的作用域。在 JavaScript 中,每当创建一个函数,闭包就会在函数创建的同时被创建出来。

\

function makeAdder(x) {

  return function(y) {

    return x + y;

  };

}

\

var add5 = makeAdder(5);

var add10 = makeAdder(10);

\

console.log(add5(2));  // 7

console.log(add10(2)); // 12

\

**闭包是由函数以及声明该函数的词法环境组合而成的。该环境包含了这个闭包创建时作用域内的任何局部变量。

相关连接

developer.mozilla.org/zh-CN/docs/…