1
2
3
4
5
6
7
8
9
10
11
12
|
function Foo() {
var i =
0
;
return
function() {
console.log(i++);
}
}
var f1 = Foo(),
f2 = Foo();
f1();//0
f1();//1
f2();//0
解析:
定义两个变量f1和f2用来接收Foo的返回值也就是Foo的一个子函数
在执行f1和f2时,会分别获取到父函数Foo中定义的局部变量i=0
第一次执行时,i++为0,i为1,第二次执行时,i++为1
|