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为什么不是同一个呢?望各位大神赐教
1 回答

人到中年有点甜
TA贡献1895条经验 获得超7个赞
为什么会是一个呢?
执行一次inc函数就是产生一个x的局部变量和一个匿名函数(引用着这个局部变量的)
inc1 和inc2引用的变量不一样的
inc1和inc2的引用也是不一样的,不行你看看inc1 == inc2
添加回答
举报
0/150
提交
取消