15.12.2011, 17:18
|
Кандидат Javascript-наук
|
|
Регистрация: 31.05.2010
Сообщений: 106
|
|
Про ecmaScript
Простите что заtraхал вопросами, но мне не поятно еще вот что:
п.13.2 создание объекта функции п.17 и 18.Не противоречит ли они утверждению что любая цепочка прототипов- конечна, а тут получается замкнутый круг. O._proto_==O?
|
|
15.12.2011, 17:35
|
|
Модератор
|
|
Регистрация: 27.04.2010
Сообщений: 3,417
|
|
"Ивааан! Ты что пишешь, окаянный?" (с)
А если по теме:
Сообщение от Иваннн
|
п.13.2 ... п.17 ... 18
|
УК РФ?
|
|
15.12.2011, 17:36
|
|
Профессор
|
|
Регистрация: 06.05.2009
Сообщений: 1,163
|
|
trikadin,
http://es5.github.com/
видимо он про это.
Хотя параграфа 17 и 18 в упор не вижу.
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Последний раз редактировалось Nekromancer, 15.12.2011 в 17:41.
|
|
15.12.2011, 17:42
|
|
Модератор
|
|
Регистрация: 27.04.2010
Сообщений: 3,417
|
|
Сообщение от Nekromancer
|
Хотя параграфа 17 и 18 в упор не вижу.
|
О чём и речь, собственно. Что он там читает...
|
|
16.12.2011, 12:02
|
Кандидат Javascript-наук
|
|
Регистрация: 31.05.2010
Сообщений: 106
|
|
Уточнения к теме
ECMAScript 5.1 параграф 13.2, перечень операций при создании объекта Function пункт 17 и18.
|
|
16.12.2011, 12:50
|
|
Профессор
|
|
Регистрация: 06.05.2009
Сообщений: 1,163
|
|
Pseudo code:
var F = new [[Function]], proto = new Object();
proto.defineProperty('constructor', {
value: F,
writable: true,
enumerable: false,
configurable: true
});
F.defineProperty('prototype', {
value: proto,
writable: true,
enumerable: false,
configurable: false
});
NOTE A prototype property is automatically created for every function, to allow for the possibility that the function will be used as a constructor.
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Последний раз редактировалось Nekromancer, 16.12.2011 в 12:58.
|
|
16.12.2011, 16:02
|
Кандидат Javascript-наук
|
|
Регистрация: 31.05.2010
Сообщений: 106
|
|
Nekromancer,
И чо!?
Псевдокод еще раз подтверждает мои слова и, соответсвенно вопрос (напомню "может ли быть так O_proto_=O"),а по поводу NOTE кто ж спорит.
|
|
16.12.2011, 16:11
|
|
Профессор
|
|
Регистрация: 06.05.2009
Сообщений: 1,163
|
|
Иваннн,
Омг, вам плохо видно? В коде то, о чём написано в примечании. И те 2 параграфа вам пишут об этом. Свойство __proto__ тут не причём, его в спецификации вообще нет. Это просто условное имя - proto, точно так же как для функции - F.
Означает, что создаётся обычный объект Object() в переменную proto, этот объект становится прототипов функции - пустой объект - пустой конструктор. И свойства конструктор этого объекта становится функцию.
Что сложного?
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
|
|
16.12.2011, 16:35
|
|
Профессор
|
|
Регистрация: 10.12.2011
Сообщений: 290
|
|
ОТВЕЧАЮ ФАКТОМ - ДА, противоречит. Данная цепочка прототипов замкнута и не конечна.
просто обычно цепочки прототипов ведут к объекту Object.prototype, а тут вы сделали замкнутую цепочку которая не ведет к Object.prototype и это противоречит тому что вы прочитали. это можно вытворять искуственно меняя свойство обьектов __proto__ вытворяя с цепочкой что угодно, даже замыкая саму в себе. что бы вы где не читали, но большинство движков JS это позволяют.
просто по спецификации ЗАДУМАНО что это свойство __proto__ не должно быть доступно человеку)) но движки разрешают его изменять искусственно! Нормально ответил да)?
Последний раз редактировалось Livanderiaamarum, 16.12.2011 в 17:05.
|
|
16.12.2011, 17:32
|
|
Профессор
|
|
Регистрация: 06.05.2009
Сообщений: 1,163
|
|
Livanderiaamarum,
Ёб**то ответил, да.
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
|
|
|
|