Термин «глобальные объекты» в mozilla смутил меня - PullRequest
0 голосов
/ 20 октября 2010

Несколько друзей предлагают мне прочитать developer.mozilla.org / ru / JavaScript / Reference / Global_Objects :

Термин «глобальные объекты» [1] здесь не следует путать с глобальным объектом [2]. Здесь глобальные объекты [3] ссылаются на объекты в глобальной области видимости . Доступ к самому глобальному объекту [4] можно получить с помощью this в глобальной области видимости. Фактически, глобальная область действия состоит из свойств глобального объекта [5] (включая унаследованные свойства, если таковые имеются).

Честно говоря, я совершенно смущен вышеприведенными словами. Первое предложение говорит мне not to be confused, но меня это смущает. Ну, английский не мой родной язык, возможно, в этом причина. Там появляются 5 раз global object(s) и 3 раза global scope!

Означает ли global object [4,5] global objects [1] или global object [2]?

Ответы [ 3 ]

1 голос
/ 20 октября 2010

Формулировка Мозиллы бесполезна.Я предлагаю вам проигнорировать это.

Существует один глобальный объект .Это четко определенная конструкция в спецификации языка ECMAScript .У него есть несколько целей, не в последнюю очередь из-за того, что свойства глобального объекта доступны везде.Это то, что Мозилла подразумевает под «Глобальными объектами»;они более точно и полезно называются «свойствами глобального объекта».

Что подразумевается в статье под global scope - это код, не входящий ни в какую функцию.В таком коде this является ссылкой на глобальный объект.В JavaScript в браузерах window можно рассматривать как глобальный объект и доступен везде.

В итоге 2, 4 и 5 - это одно и то же.1 и 3 - плохое название для «свойств глобального объекта», о которых вы должны забыть.

1 голос
/ 20 октября 2010

Краткий ответ: 4 и 5 эквивалентны 2.

Длинный ответ:"глобальный объект" является языковой конструкциейJavaScript и может быть доступен с помощью переменных global или window в вашем коде.Этот объект содержит все , которое как-то определено.

«глобальные объекты» означает все объекты, которые определены в основной области действия среды JavaScript.Основная область (или «глобальная область») означает непосредственные дочерние элементы (свойства) «глобального объекта».

Если я определяю переменную myVariable в JavaScript вне какой-либо функции, эта переменная находится в «глобальная область видимости "т.е. доступна с помощью global.myVariable (или window.myVariable), где global является ссылкой на" глобальный объект ".

Я рекомендую взглянуть на то, как работает область функции JavaScript: https://developer.mozilla.org/en/JavaScript/Reference/Functions_and_function_scope

0 голосов
/ 20 октября 2010

Глобальный объект является основным объектом. Думайте об этом как о Боге. Как и у Бога, есть только один Глобальный объект. Внутри браузеров идентификатор window ссылается на него.

Глобальные объекты - это все объекты, которые являются свойствами Бога (Глобальный объект). В браузеры встроено множество глобальных объектов, таких как location, document, XMLHttpRequest, метод alert и т. Д.

Вы можете создавать дополнительные глобальные объекты:

  • объявление глобальных (не примитивных) переменных (объявление переменных в глобальном контексте выполнения)
  • объявление глобальных функций (объявление функций в глобальном контексте выполнения)

Вероятно, лучше всего называть глобальные объекты «глобальными переменными», «глобальными функциями», «глобальными членами», «глобальными свойствами» и т. Д., Чтобы они не путались с глобальным объектом.

...