Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вопрос по prototype (https://javascript.ru/forum/misc/48699-vopros-po-prototype.html)

kda86 13.07.2014 15:18

Вопрос по prototype
 
Есть Object и у него есть атрибут Object.prototype который является прототипом для объектов созданных с помощью литеравов. Но как у Object может быть прототип, если у него нет прототипа? Он ведь на вершине всей цепочки прототипов.

newobject 13.07.2014 15:31

Цитата:

Сообщение от kda86
на вершине всей цепочки прототипов.

Он не на вершине. На вершине находится объект, на который указывает его prototype.

jsnb 13.07.2014 15:33

И в чем проблема? Object.prototype - это ссылка на объект, на который через __proto__ ссылаются встроенные классы (Number, Array, Function).

newobject 13.07.2014 15:36

kda86,

Object.prototype.foo=1
ob={}
ob.foo//1

Object -- это вообще функция, кстати. Есть еще объект {}, у которого есть __proto__, и это прото - и есть тот объект, куда указывает Object.prototype. Вот его, наверное, надо считать вершиной.

newobject 13.07.2014 15:37

kda86,

top=({}).__proto__
top.one=1
ob={}
ob.one//1
Object.prototype===top//true

newobject 13.07.2014 15:41

Цитата:

Сообщение от jsnb (Сообщение 320834)
И в чем проблема? Object.prototype - это ссылка на объект, на который через __proto__ ссылаются встроенные классы (Number, Array, Function).

Непосредственно на него они не ссылаются. Они ссылаются на function: Empty, который уже ссылается через __proto__ на него

jsnb 13.07.2014 16:07

Цитата:

Сообщение от newobject (Сообщение 320839)
Непосредственно на него они не ссылаются. Они ссылаются на function: Empty, который уже ссылается через __proto__ на него

Я имел ввиду прототипы встроенных классов конечно.
Number.prototype.__proto__ === Object.prototype

Sweet 13.07.2014 16:08

Цитата:

Сообщение от newobject
top=({}).__proto__
top.one=1
ob={}
ob.one//1
Object.prototype===top//true

И что это значит?

Sweet 13.07.2014 16:10

Цитата:

Сообщение от newobject
Они ссылаются на function: Empty

Что за function: Empty?

newobject 13.07.2014 16:11

Цитата:

Сообщение от Sweet
И что это значит?

Значит то что написано. Object.prototype указывает на объект первого уровня, вершину иерархии


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