在 demo.js 文件中,有
var a=10;
要判断 a 是不是全局的变量,可以使用 node 中的全局对象 global。
任何全局变量都是全局对象的属性,所以如果 console.log(global.a);可以打印出10,证明 a 是全局变量,
而结果是 undefined 说明 a不是全局变量而是局部变量,
若直接定义 b=11,console.log(global.b) ,结果是 11,这时 b 就是全局变量
1 var a=10; 2 console.log(global.a); //undefined 3 4 b=11; 5 console.log(global.b); //11
a 不是全局变量,因为 Node 中 a 是在一个函数中,可以利用 argument 这个函数独有的属性证明这一点
console.log(arguments.callee + "");
打印结果是: function (exports, require, module, __filename, __dirname) { }
arguments.callee :这个属性保存的是当前执行的函数对象
说明 node 中的代码都包裹在一个函数中执行