«Расширить» Array.prototype своим методом кажется удобным, но ломает предсказуемость экосистемы.
Почему опасно
Две библиотеки добавят Array.prototype.contains по-разному — последняя победит, поведение «плавает». Enumerability может сломать for...in по массивам. Код становится неявным: читатель не знает, откуда метод.
Исключение — polyfill официального метода спеки, которого ещё нет в движке, желательно аккуратно и идемпотентно.
// плохая идея в приложенииArray.prototype.unique = function () { /* ... */ };
Лучше утилита: unique(arr) или свой тип/обёртка.
Итог
Не патчьте built-ins ради удобства. Только осознанные polyfill'ы стандарта.
На собеседовании
Ожидают не заученную таблицу, а умение связать концепцию с багом из практики: что сломается, если выбрать неправильный вариант, и какой код вы напишете в реальном PR. Короткий пример и граничный случай обычно ценятся выше длинной теории.
Почему плохо расширять встроенные объекты JavaScript? · Sobeso