为什么 this.bar returns 在 webstorm 上有不同的结果?

Why this.bar returns a different result on webstorm ?

我正在学习 Javascript,我目前正在观看有关它的讲座。讲座中的一个例子是这样的;

function foo(){
    console.log(this.bar);
}

var bar = "bar1";
var o2 = { bar: "bar2", foo: foo};
var o3 = { bar: "bar3", foo: foo};

foo();     // bar1
o2.foo();  // bar2
o3.foo();  // bar3

当我尝试在 Google Chrome 控制台上 运行 时,这是评论中预期的工作。但我正在研究 Webstorm,我意识到 foo(); returns未定义。可能是 foo();不是从全局调用,但为什么它在 Webstorm 上是这样工作的。 ECMAscript 是 5.1,我更改并尝试了不同的版本,但结果是一样的。感谢您的帮助。

Webstorm 控制台结果;

undefined
bar2
bar3

如果您不执行客户端 JS,WebStorm 正在使用 node.js。该代码的行为在 here.

中进行了解释