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 указывает на объект первого уровня, вершину иерархии

newobject 13.07.2014 16:12

Цитата:

Сообщение от Sweet
function: Empty

Это объект, являющийся прототимом встроеных конструкторов (как и любой другой ф-ции)

fu=function(){}
fu.__proto__==Object.__proto__//true

Sweet 13.07.2014 16:16

Цитата:

Сообщение от newobject
Object.prototype указывает на объект первого уровня, вершину иерархии

Что за объект первого уровня? Как этот пример показывает вершину иерархии?

newobject 13.07.2014 16:17

Цитата:

Сообщение от Sweet
Как этот пример показывает вершину иерархии?

Непосредственным образом:) тор-это ссылка на этот объект

Sweet 13.07.2014 16:19

Цитата:

Сообщение от newobject
Это объект, являющийся прототимом встроеных конструкторов

С чего ты взял, что у встроенных объектов есть какой-то свой прототип function: Empty?

newobject 13.07.2014 16:20

Sweet,
Строго говоря, на вершине находиться null, на самом деле, этот объект находится ниже null

Object.prototype.__proto__//null

Sweet 13.07.2014 16:21

Цитата:

Сообщение от newobject
тор-это ссылка на этот объект

top - это ссылка на объект, но с чего ты решил, что это вершина иерархии?

newobject 13.07.2014 16:22

Sweet,
Слушай, ты какие то глуповатые вопросы задаешь. Спроси у своего интерпретатора. Если он тебе скажет что это не так, продолжим. Умерь пыл.

Sweet 13.07.2014 16:23

Цитата:

Сообщение от newobject
Строго говоря, на вершине находиться null, на самом деле, этот объект находится ниже null

И что? Понятно, что цепочка прототипов не может быть бесконечной.

newobject 13.07.2014 16:23

Цитата:

Сообщение от Sweet
top - это ссылка на объект, но с чего ты решил, что это вершина иерархии?

Тебе надо взяться за основы жабаскрипта.

Sweet 13.07.2014 16:27

Цитата:

Сообщение от newobject
Слушай, ты какие то глуповатые вопросы задаешь. Спроси у своего интерпретатора. Если он тебе скажет что это не так, продолжим. Умерь пыл.

Причём тут глуповатость вопросов. Я задаю вопрос тебе, с чего ты взял, что так ты получаешь ссылку на самыйверхний объект в цепочки прототипов?

Sweet 13.07.2014 16:27

Цитата:

Сообщение от newobject
Тебе надо взяться за основы жабаскрипта.

Хватит сливаться! Ответь на мой вопрос!

newobject 13.07.2014 16:28

Хотя бы потому, что прототип этого объекта выставлен в null

newobject 13.07.2014 16:29

Цитата:

Сообщение от Sweet
Ответь на мой вопрос!

Твой вопрос на уровне детского сада. Набери в консоли Object.__proto__

Sweet 13.07.2014 16:32

Цитата:

Сообщение от newobject
Хотя бы потому, что прототип этого объекта выставлен в null

Я могу поменять его не на null.

Sweet 13.07.2014 16:33

Цитата:

Сообщение от newobject
Набери в консоли Object.__proto__

Набрал, а где function: Empty???

newobject 13.07.2014 16:35

Цитата:

Сообщение от Sweet
Я могу поменять его не на null.

На каком движке?

Sweet 13.07.2014 16:37

Цитата:

Сообщение от newobject
На каком движке?

Да хоть бы и на v8

newobject 13.07.2014 16:37

Цитата:

Сообщение от Sweet
где function: Empty???

Набери в ноде, я не знаю, как твой движок это отображает. Не суть.

newobject 13.07.2014 16:38

Цитата:

Сообщение от Sweet
Да хоть бы и на v8

Нет. И сомневаюсь, что это возможно где-либо. Это циклическая ссылка.

Sweet 13.07.2014 16:42

Цитата:

Сообщение от newobject
Набери в ноде, я не знаю, как твой движок это отображает. Не суть.

Мне лень в ноде набирать, у меня Firefox под рукой. Ты говоришь, что есть объект Empty
Цитата:

Сообщение от newobject
, являющийся прототимом встроеных конструкторов

Как мне его получить?

Sweet 13.07.2014 16:44

Цитата:

Сообщение от newobject
Нет. И сомневаюсь, что это возможно где-либо. Это циклическая ссылка.

Но у меня то получается, может это
Цитата:

Сообщение от newobject
Тебе надо взяться за основы жабаскрипта

???

newobject 13.07.2014 16:47

Цитата:

Сообщение от Sweet
что есть объект Empty

Я говорю, что есть объект function: Empty. в фурифоксе это function(){}. Получить можешь вот так: Object.__proto__+""

newobject 13.07.2014 16:49

Цитата:

Сообщение от Sweet
Но у меня то получается

У тебя получается что-то не то. Кури код, который я привел.
Цитата:

Сообщение от Sweet
Тебе надо взяться за основы жабаскрипта

Да.

Sweet 13.07.2014 17:00

Цитата:

Сообщение от newobject
Я говорю, что есть объект function: Empty. в фурифоксе это function(){}. Получить можешь вот так: Object.__proto__+""

Ну получил я "function(){}". Так а что за объект function: Empty???
Цитата:

Сообщение от newobject
Кури код, который я привел.

Какой именно код мне нужно курить и зачем?

newobject 13.07.2014 17:06

Цитата:

Сообщение от Sweet
function: Empty

Пустая функция. В файерфоксе это что-то вроде function(), это вопрос реализаций, че ты тупишь? Суть от этого не меняется. Это объект функции, епт.
Цитата:

Сообщение от Sweet
Какой именно

Кури весь, не помешает
Цитата:

Сообщение от Sweet
зачем

Дело твое, мож тебе на жеквери больше ндравиться, тогда незачем.

Sweet 13.07.2014 17:17

Цитата:

Сообщение от newobject
Пустая функция. В файерфоксе это что-то вроде function(), это вопрос реализаций, че ты тупишь?

Если это пустая функция, то почему
Object.__proto__ instanceof Function // выдаёт false

Цитата:

Сообщение от newobject
Это объект функции, епт.

Так я и спрашиваю, что за объект функции, епт.
Цитата:

Сообщение от newobject
Цитата:

Сообщение от Sweet
Какой именно

Кури весь, не помешает
Цитата:

Сообщение от Sweet
зачем

Дело твое, мож тебе на жеквери больше ндравиться, тогда незачем.

Чё ты сливаешься. Я нормально спрашиваю: что именно я должен увидеть в твоём коде???

newobject 13.07.2014 17:40

Цитата:

Сообщение от Sweet
Object.__proto__ instanceof Function

Потому что ты бред написал. Почему это верхний объект должен быть экземпляром Function? Function и Object является экземпляром Object, между прочим.

Цитата:

Сообщение от Sweet
что за объект функции

Это объект, который является прототипом для всех функций.
Цитата:

Сообщение от Sweet
что именно я должен увидеть в твоём коде

А что ты хочешь там увидеть? То о чем ты спрашивал, ты там увидишь. Блекджека и шлюх там нет, к сожалению.

Sweet 13.07.2014 17:44

newobject, это всё бла-бла-бла. Никакой конкретики - просто трёп.
Цитата:

Сообщение от newobject
А что ты хочешь там увидеть?

Ничего. Это ты мне говоришь посмотри туда. Вот я и спрашиваю: зачем?

newobject 13.07.2014 17:50

Цитата:

Сообщение от Sweet
Вот я и спрашиваю: зачем

У тебя был вопрос. Ответ в этом коде.
Цитата:

Сообщение от Sweet
Никакой конкретики

Я пока конкретики не увидел даже в твоих вопросах

newobject 13.07.2014 17:53

Sweet,
Все это идет от того, что ты не понимаешь JS. Тоесть, сахара ты много вызубрил, но семантику не понимаешь вообще. Поэтому ты даже не осознаешь, насколько бессмысленными и глупыми выглядят твои вопросы. Как об стенку горох.


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