Ссылка на глобальный объект в JavaScript

Пожалуй, единственное, для чего может понадобиться глобальный объект, это экспорт каких-либо данных из модуля. Получить этот объект не составляет труда:


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, не наследует «строгость».