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

Сообщение от hogart
Но, например, Python — тоже динамический язык, и в нем точно так же можно дополнять/менять поведение встроенных типов, но там это считается дурным тоном — и есть типы, аналогичные встроенным, но предназначенные для наследования/переопределения.
Да ладно? В Питоне, в отличии от JS (или Ruby), нельзя расширять встроенные классы. Расширьте-ка, object. Или dict. Или ещё что. Наследоваться - это одно, а расширять - другое.

Сообщение от hogart
в идеале она нужна (читай «должна быть»)
Я отметил в плане "подводных камней". Если будет метод массива [].last(), кто-нибудь (пришедший, например, из статических языков) может подумать, что это стандартный метод и потом использует в другом проекте, где никакого .last уже не будет. С другой стороны, если известны стандартные методы, можно сразу определить, что это - расширение.

Сообщение от hogart
Не могу себе представить, зачем бы мне понадобилось итерировать по массивам через for..in.
Вы про Питон упомянули? Там Вы for ... in не пользовались?
__________________
Тонкости ECMAScript
Ответить с цитированием