Правильно ли я представляю фундамент ECMAScript ? поправьте меня пожалуйста.
Вот когда запускается EcmaScript, создается:
Глобальный объект, внутри которого есть методы (Date, Object, Function, Number, String, и т.д.). из этих методов создаются уже объекты (Date, Object, Function, Number, String, и т.д.), которые мы используем ? Правильно я понимаю или Глобальный объект не связан с остальными объектами ? |
В начале есть Object. Всё остальное его наследники.)
|
Но создаваемые объекты ведь сохраняются в глобальном объекте а не в Object.
Например: var x = 1; this.x Получается, Object стоит предпоследним в этой иерархии ? |
Глобальный объект называется window. Иногда он может совпадать с this.
x = 'global x'; alert('window: ' + window.x); alert('this: ' + this.x); alert('window.Object: ' + window.Object); alert('window.Date: ' + (new window.Date())); console.log(window); |
тогда почему window ссылается в конечном итоге на Object ?
window __proto__:Window __proto__:WindowProperties __proto__:EventTarget __proto__:Object получается глобальный объект не window а Object, но прочитав спецификацию ecmascript будет ясно что Object не глобальный. |
Это в каком браузере? В хроме и фф window.__proto__.Object - undefined
|
Rashid6,
у тебя полная неразбериха в голове. Объяснять в двух словах тут не имеет смысла. Советую вдумчиво и неторопливо раскурить местный учебник https://learn.javascript.ru/ , особенно часть первую. |
У меня все как раз таки норм все, непонятно только почему window стал глобальным объектом у Вас, когда в спецификации глобальный объект - это "Глобальный объект":
http://es5.javascript.ru/x15.1.html#x15.1 Свойства null, undefined тогда в каком объекте ? |
![]() |
Ну да, window - это объект.
Цитата:
|
Часовой пояс GMT +3, время: 15:27. |