А вот мне кажется, что расширение прототипов встроенных объектов только вводит путаницу в код.
|
Цитата:
Цитата:
|
Ну тут сначала нужно разделить случаи. Первый -- это нивелирование различий браузеров: тот же forEach (да и остальные методы, кроме reduce-reduceRight) везде есть, в ИЕ нет. Второй случай -- добавление своих методов. Тут я тоже не вижу путаницы. Простой и полезный метод last, например,
var lastElem = getMyArray().last();Где тут путаница? Вот если бы вопрос стоял "Расширять ли прототипы во фреймворках?", тогда можно подумать, но в каждом случае отдельно, в зависимости от его целей и задач. |
Kolyaj,
Я бы реализовал функцию last(), а не метод в прототипе. Чтобы у других программистов не возникало вопросов при просмотре, например, такого кода: var myArray = ["some", "thing", "here"]; doSomething(myArray.last()) Тут может быть непрозрачно, откуда взялся этот ласт. Но пример утрирован, конечно. Может я и не прав, но думаю, что нужно локализовать свой код так, чтоб он не трогал глобальную область видимости и прототипы встроенных объектов (что тоже, по сути, глобально). |
Цитата:
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
Kolyaj, я, вроде бы, тоже. Но не хочется опираться только на собственную самоуверенность в таком достаточно фундаментальном вопросе:)
|
Цитата:
|
Часовой пояс GMT +3, время: 23:32. |