javascript之彻底理解闭包

闭包是函数和声明该函数的词法环境的组合。

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

  

原文地址:https://www.cnblogs.com/honghong87/p/6013699.html