Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> О свойствах и методах в объектах и прототипах 
V
    Опции темы
AKS
Дата 2.5.2008, 07:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 27
Всего: 52



Zeroglif, ну, вроде, в общем и целом пока ясно. Подумал только еще вот о чем. Зачем им понадобилось описывать в документации типы объектов при помощи [[Class]]? Наверняка, для понимания было бы лучше использовать какой-нибудь [[Type]]...
Ну да им виднее!
А еще вот вопросец есть - может быть Вам попадалось где-нибудь разъяснение/пояснение (предистория/мотивация) того, что:
Цитата

15.10.6 Properties of the RegExp Prototype Object
The value of the internal [[Prototype]] property of the RegExp prototype object is the Object prototype. The value of
the internal [[Class]] property of the RegExp prototype object is "Object".

? Просто интересно...
PM MAIL   Вверх
Zeroglif
Дата 2.5.2008, 08:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 644
Регистрация: 22.9.2005

Репутация: 28
Всего: 66



Цитата(AKS @  2.5.2008,  07:42 Найти цитируемый пост)
the internal [[Class]] property of the RegExp prototype object is "Object"

Это баг ES, но движки эту э... неточность дружно проигнорировали.
PM MAIL WWW   Вверх
dsCode
Дата 2.5.2008, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 565
Регистрация: 8.9.2007
Где: Saint-Petersburg

Репутация: 19
Всего: 26



В смысле? Опечатака что ли обычная? Т.е. там должно было быть RegExp?


--------------------
the .code inside
:my music
PM MAIL WWW ICQ Jabber   Вверх
Zeroglif
Дата 2.5.2008, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 644
Регистрация: 22.9.2005

Репутация: 28
Всего: 66



Цитата(dsCode @  2.5.2008,  12:54 Найти цитируемый пост)
В смысле? Опечатка что ли обычная?

То ли пропустили, то ли вставили, как-то обосновав, но потом обоснование благополучно отмерло по причине правильной (по аналогии с остальными прототипами) реализации в большинстве движков. 

Цитата(dsCode @  2.5.2008,  12:54 Найти цитируемый пост)
Т.е. там должно было быть RegExp?

Угу:
Код

alert(Object.prototype.toString.apply(RegExp.prototype)); //-> [object RegExp], а не [object Object]

PM MAIL WWW   Вверх
dsCode
Дата 2.5.2008, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 565
Регистрация: 8.9.2007
Где: Saint-Petersburg

Репутация: 19
Всего: 26



Цитата(Zeroglif @  2.5.2008,  13:17 Найти цитируемый пост)
    
alert(Object.prototype.toString.apply(RegExp.prototype)); //-> [object RegExp], а не [object Object]


ну собственно, да, toString прототипа Object'a единственный, кто возвращает [[Class]] (не догадался сам проверить =))

Цитата(Zeroglif @  2.5.2008,  13:17 Найти цитируемый пост)
по аналогии с остальными прототипами


Угу. А вообще интересно, как поступают с официальными документами, если в них находят опечатки? Что, говорят, "просто забейте и реализовывайте правильно" smile; должны быть, наверно, какие-то сноски (что, мол, в редакции от такого-то числа допущена опечатка) и моментальные поправки, чтобы свежие версии спецификации скачивались уже без них. Это я к тому, что вряд ли это где-то обосновывалось и это просто опечатка (по крайней мере, это самый логичный вывод).

Спасибо =)


--------------------
the .code inside
:my music
PM MAIL WWW ICQ Jabber   Вверх
Zeroglif
Дата 2.5.2008, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 644
Регистрация: 22.9.2005

Репутация: 28
Всего: 66



Цитата(dsCode @  2.5.2008,  15:11 Найти цитируемый пост)
вряд ли это где-то обосновывалось и это просто опечатка

Это скорее заумный баг, как вариант могу предложить обсуждение на багзилле, где Waldemar Horwat считает, что это преднамеренная история, мол, у прототипа не хватает квалифицирующих признаков. Сомнительное обоснование, учитывая то, что никто не определял, как именно (по каким различиям) объекты разбросаны по [Class]-ам, известен только общий смысл - "The value of a [[Class]] property is used internally to distinguish different kinds of built-in objects" и те некоторые детали, что можно почерпнуть из описания каждого объекта.

Что касается сносок на ошибки, то есть errata, а всё остальное закостенело навечно. Вернее уже до ES4. А может это и есть "навечно"... smile 
PM MAIL WWW   Вверх
dsCode
Дата 2.5.2008, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 565
Регистрация: 8.9.2007
Где: Saint-Petersburg

Репутация: 19
Всего: 26



Хм... Плохо, что я еще имен практически не знаю. Кто такой Waldemar Horwat? Разработчик ES? Вернее, на каком основании он утверждающе заявлял, что это продуманная фича ES и о нехватке "properties or behaviors", чтобы [[Class]]'у прототипа RegExp'a быть RegExp'ом? К тому же, в конце беседы выяснилось, что ES согласны с имплементациями. А это значит, что это и вовсе не важно (особого веса для беседы не имело (собственно, как не столь важно и сегодня - через 4 года ;))), и не было никакой продуманной фичи, иначе бы ее, действительно, объяснили (а то одной вуалирующей фразы "для внутренних различий встроенных объектов" может быть и недостаточно)).

За errat'у - спасибо (некоторые из опечаток, описанных в ней, я тоже находил). А errata - это что? Именно мозиловская версия сборника опечаток ES? Или ES все это подтвердлили и это так же официальный документ? (под "официально подтвердили" я имею в виду случай, схожий с утверждениями Waldemar Horwat, в смысле, может Waldemar Horwat все эти опечатки errat'ы сейчас подробно распишет как очень даже продуманные фичи ES smile)

Цитата(Zeroglif @  2.5.2008,  16:14 Найти цитируемый пост)
Вернее уже до ES4. А может это и есть "навечно"...


"навечно"? smile не знаю =) когда анонсируется выход (в смысле не тестового repl'a (этот-то я уже скачал и поигрался немного), а официальный)? В этом году уже? Хотя, конечно, понадобиться куча времени, чтобы ES4 полностью вжился. Если сейчас при разработках поддерживают браузеры, сшитые при царе Горохе, то и при официальном выходе ES4 еще несколько лет будут писать полностью совместимый с ES3  код. Так что также долго будут продолжать эмулировать классы (кому нравится), filter'ы, map'ы, each'и для массивов, trim'ы для String'ов и т.д. (это и можно назвать "навечно" smile). Кстати, может радикальной мерой (прогресса) была бы несовместимость (а вот все разом щас как начнут писать под ES4 и тогда ES3 быстро "забудется", хотя, конечно жалко) =)


Это сообщение отредактировал(а) dsCode - 2.5.2008, 17:25


--------------------
the .code inside
:my music
PM MAIL WWW ICQ Jabber   Вверх
AKS
Дата 2.5.2008, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 27
Всего: 52



Цитата(Zeroglif @  2.5.2008,  16:14 Найти цитируемый пост)
Это скорее заумный баг, как вариант могу предложить обсуждение на багзилле...

Ага, значит "папаша" все же грозился, что очень хочет добавить исправление по этому поводу. Только потом забы(и?)л, видимо сильно увлекшись новым JavaScript'ом (вторым, или каким он у них получится). А тут, когда открылась перспектива понаделать новых багов, опечаток и т.д., то старые — это уже не та игрушка, да ну ее.
Цитата(Zeroglif @  2.5.2008,  16:14 Найти цитируемый пост)
... всё остальное закостенело навечно. Вернее уже до ES4. А может это и есть "навечно"...  

Во-во. smile
PM MAIL   Вверх
Zeroglif
Дата 2.5.2008, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 644
Регистрация: 22.9.2005

Репутация: 28
Всего: 66



Цитата(dsCode @  2.5.2008,  17:14 Найти цитируемый пост)
Кто такой Waldemar Horwat? Разработчик ES?

Waldemar готовил ранние драфты JS2.0/ES4 в AOL/Netscape, соответственно ES3 ему ооочень был близок, хотя непосредственно в написании ES3 он и не участвовалучаствовал, исправляюсь. Нынче он тоже принимает участие во всей этой кухне, только, если я не ошибаюсь уже в качестве дева Google. Во всяком случае, я видел его имя, когда читал их транскрипты...

Цитата(dsCode @  2.5.2008,  17:14 Найти цитируемый пост)
и не было никакой продуманной фичи, иначе бы ее, действительно, объяснили

Могла быть. Время точит память. Например, многие сетуют, что arguments object сдуру не сделали массивом. А почему не сделали - никто в деталях уже не помнит (где-то встречал, что NS обвинил в этом MS, дескать, это они во всём виноваты, ну, а кто же...). Причин не помнят, но точно над этим думали.

Цитата(dsCode @  2.5.2008,  17:14 Найти цитируемый пост)
А errata - это что? Именно мозиловская версия сборника опечаток ES? Или ES все это подтвердлили и это так же официальный документ?

Мозилловская версия.

Цитата(dsCode @  2.5.2008,  17:14 Найти цитируемый пост)
В этом году уже?

Запросто. Надеюсь, что у них что-нибудь не сложится (как и в первый активный период).  smile 


Это сообщение отредактировал(а) Zeroglif - 2.5.2008, 18:40
PM MAIL WWW   Вверх
AKS
Дата 2.5.2008, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 27
Всего: 52



Цитата(Zeroglif @  2.5.2008,  18:00 Найти цитируемый пост)
... хотя непосредственно в написании ES3 он и не участвовал.

В моей Edition 3 Final вроде бы он "засветился" (незнаю, что уж он там делал - писал или мимо проходил smile )...

PM MAIL   Вверх
Zeroglif
Дата 2.5.2008, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 644
Регистрация: 22.9.2005

Репутация: 28
Всего: 66



Цитата(AKS @  2.5.2008,  18:20 Найти цитируемый пост)
Edition 3 Final 

Хе-хе, действительно, поискал его в старых доках и исправляюсь - он участвовал во встречах TC-39 уже в 1998 году. Прости, Вова.
PM MAIL WWW   Вверх
Zeroglif
Дата 2.5.2008, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 644
Регистрация: 22.9.2005

Репутация: 28
Всего: 66



Цитата(dsCode @  2.5.2008,  17:14 Найти цитируемый пост)
Вернее, на каком основании он утверждающе заявлял, что это продуманная фича ES и о нехватке "properties or behaviors", чтобы [[Class]]'у прототипа RegExp'a быть RegExp'ом?


Всё, выкопал.  smile Теперь я готов ответить, на каком основании он утверждающе заявлял. На основании собственного же предложения, внесённого 15/11/1999 на встрече TC-39, цитирую:

Цитата

<...>Waldemar proposes adding <...> In 15.10.6 (Properties of the RegExp Prototype Object) he proposes we add the sentence: The value of the internal [[Class]] property of the RegExp prototype object is "Object". He also asks about the constructor property of the Math object. We agree to change it to "Math". Thanks to Herman for raising this one.

We agree to the proposed changes.


В общем, он предложил поправить/уточнить уже готовый final draft - они согласились.


PM MAIL WWW   Вверх
dsCode
Дата 3.5.2008, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 565
Регистрация: 8.9.2007
Где: Saint-Petersburg

Репутация: 19
Всего: 26



Zeroglif, невероятно! =) Как вы все умудряетесь откопать? В очередной раз - спасибо за информацию.

А что там насчет Math? - не совсем понятно. Какой еще "constructor property of the Math object", которые еще и равен "Math"? Ведь Math - не конструктор и не callable (не имеет ни [[Construct]], ни [[Call]]). Может это [[Class]] Math'a имелся в виду (ну просто кто еще там равен "Math")?


--------------------
the .code inside
:my music
PM MAIL WWW ICQ Jabber   Вверх
Zeroglif
Дата 3.5.2008, 23:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 644
Регистрация: 22.9.2005

Репутация: 28
Всего: 66



Цитата(dsCode @  3.5.2008,  14:45 Найти цитируемый пост)
Какой еще "constructor property of the Math object", которые еще и равен "Math"?

Вот именно, какой такой "constructor property of the Math object", которые еще и равен "Math"? Совсем они там оборзели, понаписали всякую ересь... smile

з.ы.  don't know
PM MAIL WWW   Вверх
dsCode
Дата 4.5.2008, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 565
Регистрация: 8.9.2007
Где: Saint-Petersburg

Репутация: 19
Всего: 26



А и действительно, это какой-то обрывок фразы, - не известно, что там имелось в виду.


--------------------
the .code inside
:my music
PM MAIL WWW ICQ Jabber   Вверх
Страницы: (3) Все 1 2 [3] 
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1026 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.