Цитата:
что же является стандартом javascript ?. - ECMA - вроде как первая версия, а теперь на какую нужно опираться и где ее взять ? - совместимы ли спецификации снизу вверх ? |
Цитата:
Или на этом сайте есть переведённый вариант этого же документа (если нравится читать по-русски). Цитата:
|
Насчет версий не понял, но
Вот еще вопросик : известно, что Function.prototype.constructor указывает на Function, Но кто считается действительным конструктором объекта-экземпляра Function ? То, что Function создал самого себя сам как-то не укладывается в голове. |
Цитата:
'Function.prototype' - это другой встроенный объект с аналогично неизвестной историей конструирования. Для нас важны не встроенные (с ними и так всё понятно), а новые функции, появляющиеся в программе через 'new Function', для них и предусмотрено наследуемое свойство 'constructor', которое является родным свойством функции 'Function.prototype', но работает прежде всего для связи вновь созданных функций со своим "действительным конструктором", с 'Function'... |
Цитата:
|
Вот еще обнаружился непонятный интересный факт :
Если имеем function X(){this.fld=123;} ; X.prototype.fld=1234; x = new X() ; То: x.fld!=X.prototype.fld , x==123 Т.е. как же так получается для x : поле fld берется не из прототипа x , а из нутренностей его конструктора ? Где же логика делегирования свойств прототипа его потомку ? PS. С методами та же петрушка. |
kefi,
ну, вообще-то так и должно быть. при запросе свойства у объекта, оно сперва ищется у него самого. затем у его прототипа.потом выше. в данном случае вы в конструкторе определили объекту собственное свойство, и поэтому оно берется из самого объекта, а не прототипа |
2 Gvozd >
Да, действительно , уже понял. Несколько увлекся ... |
Правда, вот чего не понял :
В каких случаях имеет смысл держать одинаковые имена свойств в прототипе и в Конструкторе ? |
если вы назначаете в конструкторе свойство объекта, и не будуте при использовании объекта удалять это свойство, то прототип не будет использован.
то есть смысла в таком случае в нем никакого. смысл держать свойство в прототипе, только для оформления кода в таком случае.хотя это сомнительное удовольствие. |
Часовой пояс GMT +3, время: 23:56. |