Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Войти

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

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

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про JavaScript: прототип, объекты, наследование, __proto__

Для чего нужен прототип и как присвоить прототип объекту?

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

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

Прототип в JavaScript — это объект, от которого другие объекты могут наследовать свойства и методы. Присвоить прототип можно с помощью метода Object.create() или через свойство __proto__. Это позволяет организовать наследование и разделять общие методы и свойства между несколькими объектами.

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

Прототип — это объект, который используется в качестве источника для наследования свойств и методов другими объектами. Основная цель прототипа — предоставить общий набор функций и свойств, которые можно использовать повторно в нескольких объектах, не дублируя их код.

Есть несколько способов присвоить прототип объекту:

  • С помощью метода Object.create(): Этот метод позволяет создать новый объект и явно указать его прототип:

const animal = {
	speak() {     
		console.log('Animal speaks');    
	} 
}; 
const dog = Object.create(animal); 
dog.bark = function() {
	console.log('Dog barks'); 
}; 
dog.speak(); // 'Animal speaks' 
dog.bark();  // 'Dog barks'
  • Через свойство __proto__: Это устаревший, но ещё используемый способ явно присвоить объекту прототип:

const animal = {
	speak() {     
		console.log('Animal speaks');    
	} 
}; 
const dog = {
	bark() {    
		console.log('Dog barks');    
	} 
}; 
dog.__proto__ = animal;  // Устанавливаем animal как прототип для dog 
dog.speak(); // 'Animal speaks'
  • Через функцию-конструктор и свойство prototype: Если используется функция-конструктор, её прототип автоматически присваивается создаваемым объектам:

function Animal() {} 
Animal.prototype.speak = function() {
	console.log('Animal speaks'); 
}; 
const dog = new Animal(); 
dog.speak(); // 'Animal speaks'

Присваивание прототипа позволяет создавать объекты, которые разделяют общие методы, избегая дублирования кода и упрощая поддержку.

Уровень

  • Рейтинг:

    4

  • Сложность:

    8

Навыки

  • JavaScript

    JavaScript

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

#прототип

#объекты

#наследование

#__proto__

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