function Foo() {
var i = 0;
return function() {
console.log(i++);
}
}
var f1 = Foo(),
f2 = Foo();
f1();
f1();
f2();
运行结果是0 1 0
我的理解:在执行第一个f1()时,执行完函数,作用域不销毁,输出i=0,i变成1,接着执行第二个 f1(),输出i=1,变成2;执行f2(),输出i=0
function Foo() {
var i = 0;
return function() {
console.log(i++);
}
}
var f1 = Foo(),
f2 = Foo();
f1();
f1();
f2();
运行结果是0 1 0
我的理解:在执行第一个f1()时,执行完函数,作用域不销毁,输出i=0,i变成1,接着执行第二个 f1(),输出i=1,变成2;执行f2(),输出i=0