Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #41 (permalink)  
Старый 16.03.2009, 22:21
Кандидат Javascript-наук
Отправить личное сообщение для kefi Посмотреть профиль Найти все сообщения от kefi
 
Регистрация: 12.03.2009
Сообщений: 148

Сообщение от Gvozd
вы имеете в виду a.constructor?
По-ошибке. Да.
Вообще хотелось бы понять другое - про свойство prototype :
отчего это свойство prototype недоступно для объекта, не являющегося конструктором ?
Ответить с цитированием
  #42 (permalink)  
Старый 16.03.2009, 22:28
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от kefi
отчего это свойство prototype недоступно для объекта, не являющегося конструктором ?
запомните очень важную вещь:
Прототип и свойство prototype это разные вещи и понятия

свойство prototype конструктора указывает какой прототип будет у объектов созданных при помощи этого конструктора
прототип(доступный в мозилле в виде свойства объекта __proto__.в других браузерах прототип вообще напрямую недоступен) определяет откуда надо брать какое-то свойство, если в объекте оно не определено

таким образом свойство prototype используется только объектами-
конструкторами.

у других объектов(не являющихся функциями) изначально нету свойства prototype.конечно его можно назначить, но смысла в этом будет не более, чем в назначении свойства с дюбым другим именем
Ответить с цитированием
  #43 (permalink)  
Старый 16.03.2009, 23:56
Кандидат Javascript-наук
Отправить личное сообщение для kefi Посмотреть профиль Найти все сообщения от kefi
 
Регистрация: 12.03.2009
Сообщений: 148

Сообщение от Gvozd Посмотреть сообщение
запомните очень важную вещь:
Прототип и свойство prototype это разные вещи и понятия
Пожалуй, я это давно понял, а причина этой непонятки была в том, что я не мог уложить в голове другую важную вещь, - а именно то, что свойство prototype имеется не у родителя объекта, а у его конструктора , и ,как и остальные свойства встроенных объектов-конструкторов не наследуется (за исключением ниже приведенного случая ).
Т.е. , все встроенные объекты Object,Array,Function etc являются объектами-конструкторами и не являются предками (прототипами) объектов-НЕконструкторов, ( впрочем, видимо, если они не будут специально подставлены в свойство prototype конструкторов объектов-НЕконструкторов :
var Constr=new Function(); Constr.prototype=Object ; var a=new Constr() ;
alert(a.prototype!==undefined) // TRUE )

Интересно также всвязи со сказанным посмотреть иерархию объектов-конструкторов типа Array,Funciton, etc .

Да, по поводу объяснения выше ,
Сообщение от Gvozd
// - значением свойства prototype объекта-конструктора становится вновь созданный объект - А что это за объект ??- непонятно.
до тех пор, пока вы не переопределите свойство prototype объекта-конструктора, это просто пустой объект типа constr (то есть его конуструктором считается функция constr), с пустым набором свойств
Видимо, все-таки - это пустой объект не типа constr, а типа Object .

Последний раз редактировалось kefi, 17.03.2009 в 00:00.
Ответить с цитированием
  #44 (permalink)  
Старый 17.03.2009, 01:04
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от kefi
Видимо, все-таки - это пустой объект не типа constr, а типа Object .
глянул Ecma
по ходу да.

какие-то еще вопосы?
Ответить с цитированием
  #45 (permalink)  
Старый 17.03.2009, 01:27
Кандидат Javascript-наук
Отправить личное сообщение для kefi Посмотреть профиль Найти все сообщения от kefi
 
Регистрация: 12.03.2009
Сообщений: 148

Сообщение от Gvozd
какие-то еще вопросы?
Ну, а как же.
Самый простой - хотелось бы понять, как отличать объекты-конструкторы от объектов-НЕконструкторов ?
- И как присваивать и смотреть аттрибуты ( ReadOnly etc ) свойств объектов ?
- И почему в документации гворитсяЮ что свйоства prototype встроенных объектов нельзя переопределять , когда запросто проходит, например Object.prototype=Array; ?

ЗЫ. Я так понимаю, что в предыдущем моем посте все сказано верно ? По поводу иерархии объектов-конструкторов еще сам додумаю. Тогда уж ,если, выскажусь.

Последний раз редактировалось kefi, 17.03.2009 в 01:41.
Ответить с цитированием
  #46 (permalink)  
Старый 17.03.2009, 01:52
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от kefi
как отличать объекты-конструкторы от объектов-НЕконструкторов.
любая функция может быть исользована как конструктор.
а может и в обычном режиме использована.
в режиме конструктора, this указывает на создаваемый объект

Сообщение от kefi
И как присваивать и смотреть аттрибуты ( ReadOnly etc ) свойств объектов ?
никак.атрибуты используются на уровне ядра интепретатора.

Сообщение от kefi
ЗЫ. Я так понимаю, что в предыдущем моем посте все сказано верно ? По поводу иерархии объектов-конструкторов еще сам додумаю. Тогда уж ,если, выскажусь.
вроде да.ошибок не вижу.
но башка сегодня уже не варит.

PS у вас начинаются вопросы на совсем глубокое знание стандарта Ecma.а я его краем глаза проглядывал.
в дальнейший путь я буду уже идти скорее вровень с вами, чем помогать вам.
а учитывая, что JS не является моим основным профилем работы, мне пока не удастся уделить достаточно времени и желания изучению стандарта и помощи вам
что смогу подскажу.но уже не так активно.
короче, читайте стандарт языка, и пытайтесь понять сами.думаю дальше разбиратся на основе сухой документации у вас получится
Ответить с цитированием
  #47 (permalink)  
Старый 18.03.2009, 22:02
Кандидат Javascript-наук
Отправить личное сообщение для kefi Посмотреть профиль Найти все сообщения от kefi
 
Регистрация: 12.03.2009
Сообщений: 148

Отчего так для Opera и IE ?:
with (Function.prototype) alert([ 
// Следующие три свойства дают FALSE - в MS JS (IE) и Opera :
 hasOwnProperty("prototype"),   // Function.prototype.prototype==null, в потомках объектах-конструкторах Constr это свойство переопределяется на своего спутника <c>
 hasOwnProperty("arguments"),   //
 hasOwnProperty("caller"),      //  
])

Откуда же берутся ( или чьими собственными свойствами ) являются arguments,caller ? Про prototype то же, но оно у этого объекта как-то вообще непонятно - зачем .
Ответить с цитированием
  #48 (permalink)  
Старый 20.03.2009, 12:49
-
Отправить личное сообщение для twolf Посмотреть профиль Найти все сообщения от twolf
 
Регистрация: 16.07.2008
Сообщений: 207

"вкурил" что называется тему. Потом решил почитать что про это пишется у Флэнагана. у Zeroglif'a (по той ссылке) получилось лучше, гораздо подробнее и легче для восприятия.
Ответить с цитированием
  #49 (permalink)  
Старый 20.03.2009, 16:06
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

kefi,
а фиг его знает.тут уже мне самому непонятно.
twolf,
возможно.
у каждого свой стиль мышления.
мы тут писали не статью для всех, а в первую очередь конкретному человеку пытались помочь понять
мне допустим хватило статьи Кантора для того чтобы понять.
правда курил я ее дня два, но да это уже мои проблемы, а не статьи
а кто-то Ecma прочтетт и сразу поймет
Ответить с цитированием
  #50 (permalink)  
Старый 20.03.2009, 16:15
...
Отправить личное сообщение для Zeroglif Посмотреть профиль Найти все сообщения от Zeroglif
 
Регистрация: 09.03.2008
Сообщений: 216

Сообщение от kefi
Отчего так для Opera и IE ?
Потому что "дополнительные мульки" (не-стандарт) в каждом движке реализованы по-своему (если вообще реализованы). Это что касается 'caller' и 'arguments'. В отношении собственного свойства 'prototype' у функции (Function.prototype) - это разночтение стандарта со стороны разработчиков.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с javascript andruhin Общие вопросы Javascript 12 04.05.2012 10:05
Программист на JavaScript (удалённо) Vadym Работа 1 28.01.2009 13:57
Приглашаем специалиста по JavaScript. Мск, от 75 000 руб. arturus Работа 30 14.01.2009 02:30
JavaScript Developer, Санкт-Петербург (2000 - 2500 $) lampa Работа 3 26.08.2008 15:41
Нужен Старший разработчик JavaScript Yandex Работа 17 19.08.2008 16:43