Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   UpJump: Q&A :) (https://javascript.ru/forum/misc/14421-upjump-q.html)

x-yuri 17.01.2011 21:25

они ссылаются на один и тот же объект, но доступ к этому объекту ты можешь гарантированно получить только через конструктор. А [[prototype]] - это некое свойство, обозначающее ссылку на прототип из самого объекта. Например, у ff оно называется __proto__, у других браузеров такого нету

if( {}.__proto__)
    alert( {}.__proto__ === Object.prototype )


[[...]] - это детали реализации, которые не обязывают производителей браузеров расшаривать это авторам; может даже пример реализации: в браузере эти моменты могут быть реализованы по-другому

UPD уже только у ie нету __proto__

UpJump 17.01.2011 21:31

спасибо за исчерпывающий ответ. вот кстати накопал полезную инфу в схемах.http://habrahabr.ru/blogs/javascript/108915/ Может кому будет интересно как мне.

UpJump 18.01.2011 13:18

Еще один вопрос от любопытного меня:)
Предположим вот код.
F = function(){
f = function(){}
}
F();
alert(f.__proto__);// Выводит function Empty();

Так вот что это за функция. Из перевода ясно что она пустая. В чем ее смысл, почему к примеру не undefined?
И куда ведет в данном случае __proto__ ? У функции F(); он идет к
Function.prototype == Function.__proto__
, это понятно. А с f(); неясно:blink:

x-yuri 18.01.2011 13:32

F = function(){
    f = function(){}
}
F();
alert(f.__proto__ === Function.prototype);

UpJump 18.01.2011 13:50

спс.

UpJump 18.01.2011 13:59

То есть у Function объект-прототип не является [object Object]. Что же тогда это за пустая функция function Empty()? Ну или хотя бы где можно про нее прочесть?

x-yuri 18.01.2011 14:20

сделай так, чтобы я увидел эту твою function Empty()

UpJump 18.01.2011 14:56

F = function(){
	f = function(){}
}
F();

alert(F.__proto__);// тут
alert(f.__proto__);// тут
alert(Function.__proto__);// тут
alert(Function.prototype);// и наконец тут

UPD Я проверял на Ghrome. Сейчас проверил на файрфоксе вызывает просто function(){}. Как я понимаю своя специфика хрома. Я прав?

x-yuri 18.01.2011 15:21

мог бы уже сделать свой код запускаемым

в общем ничего интересного, браузер пытается показать тебе исходный код функции, а названием Empty как бы намекает, что показывать нечего ;)

UpJump 18.01.2011 16:08

Цитата:

мог бы уже сделать свой код запускаемым
спс. как раз только хотел узнать как тут делать код запускаемым.
Цитата:

в общем ничего интересного, браузер пытается показать тебе исходный код функции, а названием Empty как бы намекает, что показывать нечего
А ну тогда понятно. Как я понял такой реализации в файрфоксе нету. Надо будет потом глянуть что с остальными браузерами.


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