Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: prototype, inheritance, Array, prototype chain, JavaScript

Откуда у массива, созданного через литеральную запись, берутся методы вроде push и pop, если в консоли их не видно?

Вопрос проверяет понимание прототипного наследования в JavaScript и того, как методы массива наследуются через прототип.

Короткий ответ

Методы push, pop и другие берутся из прототипа Array.prototype. Когда вы создаете массив через литерал [], JavaScript автоматически устанавливает его прототип в Array.prototype. В консоли эти методы не видны, потому что они находятся в прототипе, а не в самом объекте массива. При вызове метода JavaScript ищет его сначала в объекте, а затем поднимается по цепочке прототипов.

Длинный ответ

Прототипное наследование массивов

В JavaScript каждый объект имеет скрытую ссылку на свой прототип. Для массивов, созданных через литерал [], прототипом является Array.prototype. Именно там определены все методы работы с массивами: push, pop, map, filter и другие.

Почему методы не видны в консоли?

Когда вы выводите массив в консоль, отображаются только собственные свойства объекта. Методы находятся в прототипе, поэтому они не показываются в списке свойств массива. Однако их можно увидеть, если обратиться к свойству __proto__ или использовать Object.getPrototypeOf().

Пример для наглядности

const arr = [1, 2, 3];
console.log(arr); // [1, 2, 3] - методы не видны
console.log(arr.__proto__); // Array.prototype - тут все методы
console.log(Object.getPrototypeOf(arr) === Array.prototype); // true

// Проверка наличия метода
console.log('push' in arr); // true - метод найден в прототипе
console.log(arr.hasOwnProperty('push')); // false - это не собственное свойство

Как работает поиск метода

При вызове arr.push(4) JavaScript сначала ищет свойство push в самом объекте arr. Не найдя его, он переходит к прототипу Array.prototype и находит метод там. Если бы метод не был найден и там, поиск продолжился бы по цепочке прототипов до Object.prototype.

Вывод

Понимание прототипного наследования важно для эффективной работы с JavaScript. Это позволяет экономить память, так как методы хранятся в одном месте и используются всеми массивами, а не копируются для каждого экземпляра.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    4

  • Сложность:

    3

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#prototype

#inheritance

#Array

#prototype chain

#JavaScript

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию