所有系统级 javascript 引擎(Node、Rhino 等)都实现了commonjs规范,该规范声明所有代码都必须包装在匿名函数中。因此,与上下文相关的实验不会产生与在浏览器中相同的结果。
比如下面的 if 在 node 下运行;会产生与在 Firebug 中运行时不同的结果:
var inner;
inner = 'inner';
this.inner = 'overriden';
console.log(inner); // node: inner // firebug: overriden
对我来说,在我的Ubuntu终端中进行这些实验比在浏览器中更有效。是否有一个 js 运行时可以模拟浏览器的运行时,就像它在我的终端中一样?