Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Правильно ли я представляю фундамент ECMAScript ? поправьте меня пожалуйста. (https://javascript.ru/forum/misc/72788-pravilno-li-ya-predstavlyayu-fundament-ecmascript-popravte-menya-pozhalujjsta.html)

Rashid6 26.02.2018 07:16

Правильно ли я представляю фундамент ECMAScript ? поправьте меня пожалуйста.
 
Вот когда запускается EcmaScript, создается:

Глобальный объект, внутри которого есть методы (Date, Object, Function, Number, String, и т.д.). из этих методов создаются уже объекты (Date, Object, Function, Number, String, и т.д.), которые мы используем ? Правильно я понимаю или Глобальный объект не связан с остальными объектами ?

Aetae 26.02.2018 11:56

В начале есть Object. Всё остальное его наследники.)

Rashid6 26.02.2018 15:12

Но создаваемые объекты ведь сохраняются в глобальном объекте а не в Object.

Например:

var x = 1;
this.x


Получается, Object стоит предпоследним в этой иерархии ?

Белый шум 26.02.2018 15:48

Глобальный объект называется 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);

Rashid6 26.02.2018 16:40

тогда почему window ссылается в конечном итоге на Object ?

window
__proto__:Window
__proto__:WindowProperties
__proto__:EventTarget
__proto__:Object

получается глобальный объект не window а Object, но прочитав спецификацию ecmascript будет ясно что Object не глобальный.

Белый шум 26.02.2018 16:47

Это в каком браузере? В хроме и фф window.__proto__.Object - undefined

Alexandroppolus 26.02.2018 17:02

Rashid6,

у тебя полная неразбериха в голове. Объяснять в двух словах тут не имеет смысла. Советую вдумчиво и неторопливо раскурить местный учебник https://learn.javascript.ru/ , особенно часть первую.

Rashid6 26.02.2018 17:42

У меня все как раз таки норм все, непонятно только почему window стал глобальным объектом у Вас, когда в спецификации глобальный объект - это "Глобальный объект":

http://es5.javascript.ru/x15.1.html#x15.1

Свойства null, undefined тогда в каком объекте ?

Rashid6 26.02.2018 17:48


Белый шум 26.02.2018 18:43

Ну да, window - это объект.
Цитата:

Например, в объектной модели HTML-документа свойство window глобального объекта является самим глобальным объектом.


Часовой пояс GMT +3, время: 15:27.