作用域

669 阅读1分钟
  • 当前函数执行,形成一个私有作用域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