2014-01-17 3 views
7
  1. Какой объект в веб-браузере является глобальным объектом?
  2. Является ли глобальная область видимости объектом глобального объекта? Если нет, то где находится глобальная область видимости?

ответ

5

В обозревателе браузера окно считается глобальным.

Объект окна реализует интерфейс Window, который в свою очередь наследует от интерфейса AbstractView.
Некоторые дополнительные глобальные функции, объекты пространств имен, интерфейсы и конструкторы, обычно не связанные с этим окном, но доступные на нем, перечислены в Справочнике JavaScript и в документе DOM.

Объект window представляет собой окно.
Свойство документа окна указывает на документ DOM, загруженный в это окно.
Окно для данного документа можно получить, используя свойство document.defaultView.

В браузере с вкладками, например в Firefox, каждая вкладка содержит свой собственный объект окна (и, если вы пишете расширение, окно обозревателя также является отдельным окном.
То есть объект окна не является разделяемые между вкладками в одном окне. Некоторые методы, а именно window.resizeTo и window.resizeBy, применяются ко всему окну, а не к конкретной вкладке, к которой относится объект окна. Как правило, все, что не может разумно относиться к вкладке, относится к окно вместо этого.

3
  1. глобальный объект называется window
  2. да, глобальный SCO pe обеспечивается окном, поэтому u может получить любую глобальную переменную с окном.
1

Какой замечательный вопрос. Я размышлял об этом некоторое время. Вот мои мысли. Да, это правда, что-то называется глобальным объектом и глобальным охватом. Тем не менее, глобальная область действия является виртуальной и буквально отражает зеркальное отражение глобального объекта (т. Е. Какие свойства, присутствующие в глобальном объекте, присутствуют в качестве переменных в глобальной функции/области). Любые обновления в глобальной области - это обновление глобального объекта (т. Е. Если вы создаете глобальную переменную, она добавляется как к глобальной области, так и к глобальному объекту). Вот замечательный факт: когда глобальная область создается или вызывается, если возможно, контекст, который передается в нее, фактически является глобальным объектом.

Это хардкорное доказательство того, что на JavaScript не существует кода, который фактически выполняется вне функции в JavaScript. Некоторые утверждают, что код верхнего уровня и встроенные скрипты фактически не выполняются внутри функции, но это не истинная причина для создания глобальной области, должна быть вызвана глобальная функция, и это означало бы, что любой код верхнего уровня должен был бы запускаться внутри этой глобальной функции.

Смежные вопросы