以下代码在浏览器运行或者在git直接一行行输入,运行的结果都是2,可是把代码保存在独立的js文件中,使用node命令调用,结果却是undefined,这是为什么?
function foo () {
console.log(this.a);
}
var a = 2;
foo();
在浏览器中默认的为js正常模式,而使用node命令调用则使用了严格模式,导致结果不同,你可以尝试在脚本上加入严格模式,再运行同样会显示undefined。
在严格模式中,禁止了this指针指向全局对象,故会显示undefined
因为用的引擎不一样
导致this指向的东西不一样
node 用的 js用的ECMAScript版本比浏览器里面用的高