Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 03.07.2009, 15:42
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

А вы уверены, что Object.prototype.toString не используется нигде в нативных объектах/функциях? Просто таким финтом вы не обманули какую-то конкретную функцию, а потенциально сломали все. Сломать и обмануть -- разные вещи. Проще было написать
var isArray = function() { return false; };

Последний раз редактировалось Kolyaj, 03.07.2009 в 15:45.
Ответить с цитированием
  #12 (permalink)  
Старый 03.07.2009, 15:46
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от Kolyaj
А вы уверены, что Object.prototype.toString не используется нигде в нативных объектах/функциях?
А что используется?
Ответить с цитированием
  #13 (permalink)  
Старый 03.07.2009, 16:11
Профессор
Отправить личное сообщение для Dmitry A. Soshnikov Посмотреть профиль Найти все сообщения от Dmitry A. Soshnikov
 
Регистрация: 25.02.2008
Сообщений: 707

Сообщение от Kolyaj
Это не обмануть.
формально, [[Class]] host-объектов может быть и "RegExp", в таком случае - обмануть, практически же - не знаю, какая из реализаций такое может сделать, но стандарт не запрещает.
__________________
Тонкости ECMAScript

Последний раз редактировалось Dmitry A. Soshnikov, 03.07.2009 в 16:15.
Ответить с цитированием
  #14 (permalink)  
Старый 03.07.2009, 16:12
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Riim, твой пример равносилен следующему:
Object = null;
alert(Object);

Все в пределах разумного же должно быть. Вот пример c opera, ведь никто не застрахован от того, что его скрипт не подключется после того, как в глобальном пространстве имен будет создана переменная opera? А если еще вспомнить, что IE добавляет глобальные ссылки на DOM-элементы по именам идентификаторов…

Сообщение от Kolyaj
ну хоть бы дал подумать
ладно в следующий раз не буду спешить)

Последний раз редактировалось Octane, 03.07.2009 в 17:34.
Ответить с цитированием
  #15 (permalink)  
Старый 03.07.2009, 16:14
Профессор
Отправить личное сообщение для Dmitry A. Soshnikov Посмотреть профиль Найти все сообщения от Dmitry A. Soshnikov
 
Регистрация: 25.02.2008
Сообщений: 707

Сообщение от Kolyaj
ну хоть бы дал подумать
какой тут подумать, тут чисто - получить соответсвующую инфу (либо знаешь, либо не знаешь), вопрос не "на подумать"
__________________
Тонкости ECMAScript
Ответить с цитированием
  #16 (permalink)  
Старый 03.07.2009, 16:21
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Dmitry A. Soshnikov,
я ж специально не isArray выбрал . На regexp'ы в фреймворках проверки обычно нет. Так что тут задача была скорее в проведении аналогии. С чем, к сожалению, у многих проблемы.
Ответить с цитированием
  #17 (permalink)  
Старый 03.07.2009, 16:24
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Я так и не понял, почему заменять методы в prototype конструкторов - плохо. Вроде это стандартная практика.
Ответить с цитированием
  #18 (permalink)  
Старый 03.07.2009, 16:26
Профессор
Отправить личное сообщение для Dmitry A. Soshnikov Посмотреть профиль Найти все сообщения от Dmitry A. Soshnikov
 
Регистрация: 25.02.2008
Сообщений: 707

Kolyaj, да какая разница "Array" или "RegExp"; по стандарту, host-объекты могут иметь в качестве [[Class]] любое значение, включая, используемые стандартными объектами ECMA (я, кстати, подправил коммент, где "Array" написал).
__________________
Тонкости ECMAScript
Ответить с цитированием
  #19 (permalink)  
Старый 03.07.2009, 16:28
Профессор
Отправить личное сообщение для Dmitry A. Soshnikov Посмотреть профиль Найти все сообщения от Dmitry A. Soshnikov
 
Регистрация: 25.02.2008
Сообщений: 707

Сообщение от Riim
Я так и не понял, почему заменять методы в prototype конструкторов - плохо. Вроде это стандартная практика.
Пока нельзя выставлять {DontEnum} свойствам, плохо (с практической точки зрения) добавлять свойства в Object.prototype, в остальных случаях - если идеология позволяет - почему нет?
__________________
Тонкости ECMAScript
Ответить с цитированием
  #20 (permalink)  
Старый 03.07.2009, 16:35
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от Dmitry A. Soshnikov
добавлять свойства в Object.prototype
Да, кстати даже при замене (не добавлении) в for-in попадает.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать электронный каталог продукции? natarius Серверные языки и технологии 6 24.05.2009 20:56
Как сделать, чтобы 2 ссылки отображались как hover при наведении мышкой на любую? Ava Элементы интерфейса 5 19.05.2009 23:24
как можно создать iframe со скриптами GOll Общие вопросы Javascript 2 05.05.2009 11:32
как найти нужный объект? `p r o x y jQuery 2 05.05.2009 01:12
форма как в ExtJS 2 magistr_bender Общие вопросы Javascript 0 11.09.2008 16:01