Nodejs交互式控制台和文件执行运行时间之间有什么区别?
在交互式nodejs控制台中:
> var a = 1; > console.log(a); 1 > console.log(this.a); 1
所以我认为
a === this.a
但是当我把它保存在一个JS文件中并执行它时,我得到了不同的回应:
1 undefined
为什么this.a
现在是不确定的?
当您从控制台执行节点时,“this”是指控制台的全局范围。 所以'a'自动被添加到全局,就像在浏览器中以类似的方式声明一个variables将添加'a'到窗口,即window.a
从脚本执行时,“this”是一个对象。 variables不以相同的方式添加到全局范围。 为什么,我不知道。 但是这似乎正在发生。