Пожалуй, единственное, для чего может понадобиться глобальный объект, это экспорт каких-либо данных из модуля. Получить этот объект не составляет труда:
function myCoolFunction() {
var global = function () { return this; }();
}
Переменная global
внутри myCoolFunction()
будет соответствовать window
, если код выполняется в браузере, и global для окружения Node.js.
Однако, когда функция выполняется в строгом режиме
, такой трюк не пройдёт. В «strict mode» значение this будет равно undefined
.
function myCoolFunction() {
'use strict';
var global = Function('return this')();
}
Этот приём работает корректно из-за того, что функция, созданная с помощью конструктора Function
, не наследует «строгость».