Шаблон Javascript для доступа к глобальному объекту

я нашел этот пример кода

    var global = (function () {
      return this || (1, eval)('this');
    }());

но я не понимал его полезности. Когда / почему мне следует использовать этот код?

От: http://shichuan.github.io/javascript-patterns/?utm_content=buffer874b9&utm_source=buffer&utm_medium=facebook&utm_campaign=Buffer


person Alberto Fecchi    schedule 18.04.2014    source источник
comment
Обычно вам это не нужно. Так просто.   -  person Denys Séguret    schedule 18.04.2014
comment
Прочтите описание: Description: access the global object without hard-coding the identifier window. Обычно (в браузере) глобальный объект - это window. В некоторых средах (например, node JS) это не так. Как сказал @dystroy, вам обычно не нужно об этом беспокоиться.   -  person Matt Burland    schedule 18.04.2014
comment
В нестрогом коде есть более простые способы получить глобальный объект. Например (function(){return this}).call().   -  person Denys Séguret    schedule 18.04.2014
comment
@MattBurland Даже в библиотеке, работающей как в браузере, так и в узле, правильно спроектированная программа редко имеет причины для доступа к глобальному объекту (я не думаю, что вы говорите иначе, просто пытаясь быть яснее).   -  person Denys Séguret    schedule 18.04.2014
comment
@dystroy: Абсолютно согласен. Если вам нужен глобальный объект, вашей первой мыслью должно быть переосмысление того, что вы делаете, и поиск лучшего способа.   -  person Matt Burland    schedule 18.04.2014
comment
@Bergi Это не похоже на вескую причину закрытия, поскольку OP уже знает, как получить доступ к глобальному объекту.   -  person Denys Séguret    schedule 06.05.2014