关于 JS 闭包的一些疑问

var x = 100;  
var inc = function(){  
  var x = 0;  return function(){    console.log(x++);
  };
};var inc1 = inc();  
var inc2 = inc();

inc1();  // -> 0  inc1();  // -> 1  inc2();  // -> 0  inc1();  // -> 2  inc2();  // -> 1  x;       // -> 100

如上代码中,inc1操作的变量x和inc2操作的变量x为什么不是同一个呢?望各位大神赐教


慕妹3242003
浏览 461回答 1
1回答

人到中年有点甜

为什么会是一个呢?执行一次inc函数就是产生一个x的局部变量和一个匿名函数(引用着这个局部变量的)inc1 和inc2引用的变量不一样的inc1和inc2的引用也是不一样的,不行你看看inc1 == inc2
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript