Тема: Про ecmaScript
Показать сообщение отдельно
  #23 (permalink)  
Старый 19.12.2011, 14:45
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

Иваннн,
Я вот не понимаю, чего вы хотите этим добиться, доказать что спецификация неправильная или что?
Не знаю даже как вам объяснить, конкретный пример в спецификации сейчас искать не хочется.
Я вот хотел вам сейчас рассказать как строится всё архитектура пространства в JavaScript, но вовремя увидел, что вы уж совсем намудрили.
fo.constructor.prototype===fo.constructor.prototyp e.constructor.prototype
Это тоже самое что
fo.constructor.prototype === fo.constructor.prototype
Естественно тут замкнутый круг, вы здесь ни разу не идёте по цепочке прототипов, а просто по кругу - от прототипа конструктора, к самому конструктору и опять по новой.
Правильная цепочка прототипов выглядит так:
alert((function(){}).prototype.__proto__ === Object.prototype) // true

alert(Object.prototype.__proto__)

В общем вы путаете свойство prototype у конструктора и свойства __proto__ у объекта, которое как раз и указывает на свойство prototype конструктора. В следствии чего __proto__.__proto__ будет указывать на родительский прототип. А __proto__.constructor.prototype указывает на само себя.
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием