var i = 0;
c[0] = function abc() {return console.log(i);};
i ++; // 1
c[1] = function abc() {return console.log(i);};
i ++; // 2
console.log(c[0]()); //即执行console.log(i),明显了i=2
第二种情况等价于:
var j = 0;
function abc() {console.log(j);}
abc(); // 0
j ++; // j = 1
function abc() {console.log(j);}
abc(); // 1
我们把8改成2,不用
for来解释下。第一种情况等价于:
第二种情况等价于:
因为第一个是在 for 循环完了之后输出的,第二个是在循环体中输出的。