- 当前函数执行,形成一个私有作用域A,A的上级作用域是在创建(定义)的地方
例子1:
var a = 12;
function fn () {
console.log(a); // 12 => fn是在全局作用域下创建的
}
function sum () {
var a = 120;
fn();
}
sum();
例子2:
var n = 10;
function fn () {
var n = 20;
function f () {
n++;
console.log(n);
}
f();
return f;
}
var x = fn(); // 把fn执行的结果赋值给x
x();
x();
console.log(n);
注意上述x()运行时,n的值的上级作用域是定义f的地方,即fn。
先后输出:21 22 23 10