摘要:nodejs中变量寻找作用域的机制

nodejs中变量寻找作用域,先寻找局部变量作用域,在寻找顶层变量作用域,最后在寻找global全局作用域。

(1)如果变量先被指定作用域

var a="module";
global.a="global";

function alpha() {

    console.log(this.a);//这里的this.a指定输出global全局作用域的a属性,所以输出global。
}

alpha();
console.log(a);

输出结果:

global
module

(2)如果没指定变量作用域

例一:

var a="module";
global.a="global";

function alpha() {
    console.log(a);//先从局部变量域寻找,局部变量作用域没有,然后寻找顶层变量作用域,找到了a="module"
}

alpha();
console.log(a);


输出结果:
module
module

例二:


global.a="global";

function alpha() {
    console.log(a);//先从局部变量域寻找,局部变量作用域没有,然后寻找顶层变量作用域,然后寻找global全局作用域,发现a="global"
}

alpha();
console.log(a);

输出结果:
global
global