Встречается на собеседованиях • сегодня
Почему нельзя вешать на Array.prototype дополнительный обработчик или функцию
Добавление методов в Array.prototype может привести к неожиданным побочным эффектам:
- Конфликты имен: если в будущем в стандарт добавится метод с таким же именем, поведение сломается.
- Итерации: добавленные свойства будут видны в
for..in(хотя для массивовfor..inне рекомендуется). - Совместимость: код может сломаться в других библиотеках или фреймворках.
Лучше использовать отдельные утилиты или классы-обертки.
Пример проблемы:
javascript
Array.prototype.sum = function() {
return this.reduce((a, b) => a + b, 0);
};
const arr = [1, 2, 3];
for (const key in arr) {
console.log(key); // Выведет: 0, 1, 2, "sum"
}Решение:
javascript
function sum(array) {
return array.reduce((a, b) => a + b, 0);
}
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы