splincodewd
@splincodewd
Developer

Почему расширять базовые структуры данных (String, Array, ..) вредно?

Слышал, что самописные функции по типу:
Array.prototype.myquicksort = function(){
// code
}

вредно писать, но почему? Ведь, если посмотреть, довольно удобно, когда у твоих объектов, у того же только что созданного массива, есть специальный метод, который может тебе пригодится по ходу проекта, к тому же, ты знаешь как его использовать, сразу метод вызываешь своего массива.

Однако, все же, все равно используют $, underscore, и тд...
  • Вопрос задан
  • 130 просмотров
Решения вопроса 3
@VZVZ
Reverse-Engineer, Software Developer, Architect
Ты-то да - и знаешь и пригодится. А вот другие, кто с твоим кодом работать будет... Или если, не дай Бог, дашь его кому-то, забыв, что там используются расширения...
Но возможен же компромисс: если проект серьезный, то надо весь этот фреймворк просто выложить публично, как отдельный проект. Тогда только польза будет, если он хороший.

> Однако, все же, все равно используют $, underscore, и тд...
Не мешайте мухи с котлетами, задачи разные.
Где-то стоит делать расширение. Где-то лучше сделать свою обертку, скрыв прямой доступ ко всему старому и низкоуровневому.
Например, XmlHttpRequest ущербен уже тем, что в самом слове "XmlHttpRequest" много буков и забываешь, какие буквы писать капсом, какие нет.
Ответ написан
Комментировать
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Вот, что по этому поводу имеют сказать светлые умы:
perfectionkills.com/whats-wrong-with-extending-the-dom
https://www.nczonline.net/blog/2010/03/02/maintain...
Ответ написан
Комментировать
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
стандартные вещи для js такие как Array или String находятся в глобальном объекте
Изменять глобальный объект допустимо, но не желательно, когда мы пишем приложение
И категорически запрещено когда мы пишем библиотеку

Ну и насчет прототипов стандартных объектов, дописывать что-либо в них следует через Object.defineProperty с enumerable : flase иначе могут возникнуть неприятности
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы