闭包是函数和声明该函数的词法环境的组合。
function init() { var name = "Mozilla"; // name 是一个被 init 创建的局部变量 function displayName() { // displayName() 是内部函数,一个闭包 console.log(name); // 使用了父函数中声明的变量 } displayName(); } init();
var a = 1; var x = function (){ console.log(a); } function f(){ var a = 2; x(); } f(); // 1 var a = 1; function getAdd(){ var a = 10; function add(){ return a++; } return add; } var fun = getAdd(); console.log(fun()); // 10 console.log(fun()); // 11 console.log(a); // 1