Должен ли я использовать self или window для ссылки на глобальную область?

В качестве соглашения о стиле я предпочитаю быть явным при доступе к переменным в глобальной области видимости, предпочитая

window.example = "Hello";
window.alert(window.example);

менее подробному

example = "Hello";
alert(example);

Теперь у меня есть модуль, который можно использовать непосредственно из браузера или, если они доступны, из веб-воркеров.В веб-воркерах глобальный объект называется self, а в браузере он называется window.

Объект windowимеет свойство self, поэтому self.example = "Hello"будет работать в обоих контекстах, пока никто не повторно объявит self(как они часто делают: var self = this).

Какое соглашение лучше использовать?

  • Используйте selfи надейтесь, что никто не объявит конфликтующую self.
  • Если определено window, используйте window, иначе используйте self.
  • Что-то еще?

Подумав, я склоняюсь ко второму.

5
задан Community 23 May 2017 в 12:27
поделиться