А вы уверены, что Object.prototype.toString не используется нигде в нативных объектах/функциях? Просто таким финтом вы не обманули какую-то конкретную функцию, а потенциально сломали все. Сломать и обмануть -- разные вещи. Проще было написать
var isArray = function() { return false; }; |
Цитата:
|
Цитата:
|
Riim, твой пример равносилен следующему:
Object = null; alert(Object); Все в пределах разумного же должно быть. Вот пример c opera, ведь никто не застрахован от того, что его скрипт не подключется после того, как в глобальном пространстве имен будет создана переменная opera? А если еще вспомнить, что IE добавляет глобальные ссылки на DOM-элементы по именам идентификаторов… Цитата:
|
Цитата:
|
Dmitry A. Soshnikov,
я ж специально не isArray выбрал :). На regexp'ы в фреймворках проверки обычно нет. Так что тут задача была скорее в проведении аналогии. С чем, к сожалению, у многих проблемы. |
Я так и не понял, почему заменять методы в prototype конструкторов - плохо. Вроде это стандартная практика.
|
Kolyaj, да какая разница "Array" или "RegExp"; по стандарту, host-объекты могут иметь в качестве [[Class]] любое значение, включая, используемые стандартными объектами ECMA (я, кстати, подправил коммент, где "Array" написал).
|
Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 08:44. |