定义
「函数」和「函数内部能访问到的变量」(也叫环境)的总和,就是一个闭包。
一个函数和对其周围状态(lexical environment,词法环境)的引用捆绑在一起(或者说函数被引用包围),这样的组合就是闭包(closure)。也就是说,闭包让你可以在一个内层函数中访问到其外层函数的作用域。在 JavaScript 中,每当创建一个函数,闭包就会在函数创建的同时被创建出来。
直接上例子
function makeFunc() {
var name = "Mozilla";
return function displayName() {
console.log(name);
}
}
var myFunc = makeFunc();
myFunc(); //Mozilla
例子中,name变量和displayName函数形成了一个闭