当我在node.js中键入时,我得到了undefined。
undefined
var testContext = 15; function testFunction() { console.log(this.testContext); } testFunction(); =>undefined
如果没有var关键字,则通过(=> 15)。它可以在Chrome控制台中运行(带有和不带有var关键字)。
var
使用时它在Node中不起作用,var因为它testContext是 当前模块 的 本地变量 。您应该直接引用它:console.log(testContext);。
testContext
console.log(testContext);
不输入时var,发生的事情testContext现在 是整个Node进程中的全局变量 。
在Chrome浏览器(或其他任何浏览器中-我不确定oldIE …),无论您是否var在示例中使用,testContext 都将转到全局上下文 ,即window。
window
顺便说一下,“全局上下文”是thisJS中函数调用的默认值。
this