我正在尝试对使用 JavaScript 库的代码进行单元测试,如果它不存在,则设置一个全局变量。库使用的模式是:
var GLOBAL_VAR = GLOBAL_VAR || {}
这在浏览器世界中有效,但是当我在 NodeJS 中执行代码时,它不起作用。问题归结为:
var myGlobal = 'CORRECT';
console.log('Prints CORRECT', myGlobal || 'WRONG');
(function () {
// Why does this print WRONG?
var myGlobal = myGlobal || 'WRONG';
console.log('Prints WRONG', myGlobal);
}).call(this);
(function () {
console.log('Prints CORRECT', myGlobal || 'WRONG');
}).call(this);
为什么第一个函数打印错误而第二个函数打印正确?
相关分类