|
Расширение прототипов встроенных обьектов: хорошо или плохо?
Неоднократно слышал от уважаемых мною людей, что Prototype.js — некошерно, потому что изменяет прототипы встроенных обьектов.
Недавно почитал про MooTools, и оказалось, что они тоже используют этот подход, более того, предоставляют удобный интерфейс для расширения прототипов. И у меня закрались сомнения. Действительно ли плохо менять встроенные прототипы? Чем это плохо, кроме того, что возможно, при подключении еще одного фреймворка, возникнут конфликты? Какие подводные камни? |
Цитата:
По теме: юзаю активно. |
Цитата:
Цитата:
Спасибо. |
Цитата:
Цитата:
|
Kolyaj, удалить? а если уже полмегабайта скриптов написано с расчетом на этот фреймворк?
|
Ну удалить можно, разумеется, только на начальном этапе. Вообще, если ты пишешь с использованием фреймворка, то ты должен писать в стиле этого фреймворка, иначе всегда будут находится концептуальные проблемы.
Проблемы с расширением прототипов могут возникнуть только если ты решил переопределить метод, уже определенный фреймворком, а это и есть написание кода вразрез используемому фреймворку. |
Kolyaj, это-то очевидно.
|
А какие еще могут возникнуть проблемы?
|
hogart, пока нельзя задавать внутреннее свойство {DontEnum} добавляемым методам/свойствам, не советуют расширять Object.prototype и Array.prototype. Причина: оператор in найдёт эти свойства в "пустых" объектах. В остальном - это в идеологии языка, поэтому - смело можно расширять всё, что захочется.
|
Цитата:
|
Часовой пояс GMT +3, время: 03:01. |
|