JavaScript的变量作用域和闭包操作
变量的作用域:
每个函数来定义作用域,函数内部用var来声明的,他们的作用域只在本函数内有用。函数可以用来创造函数作用域。此时的函数像一层半透明的玻璃,在函数里面可以看到外面的变量,而在函数外面无法看到函数里的变量。
function Foo() {
var i = 0;
return function() {
console.log(i++);
}
}
var f1 = Foo(),
f2 = Foo();
f1();
f1();
f2();
答案是:0 1 0
function Foo() {
var i = 0;
return function() {
console.log(i++);
}
}
var f2 = Foo();
Foo()();
Foo()();
f2();
答案是:0 0 0