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