Я пытаюсь выполнить модульное тестирование кода, который использует библиотеку 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);
Почему первая функция печатает НЕПРАВИЛЬНО, а вторая функция печатает ПРАВИЛЬНО?