Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Войти

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

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

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про JavaScript: this, прототипы

Как работает this для прототипов объекта?

Этот вопрос проверяет понимание того, как контекст (this) ведет себя при вызове методов, унаследованных через прототипы. Важно понимать, как this ссылается на вызывающий объект, а не на прототип.

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

Когда метод вызывается на объекте, который наследует этот метод через прототип, this указывает на объект, на котором был вызван метод, а не на сам прототип. То есть, независимо от того, где определен метод — на объекте или на его прототипе — this всегда ссылается на объект, который инициировал вызов.

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

В JavaScript ключевая особенность прототипного наследования заключается в том, что при вызове метода, унаследованного через прототип, контекст (this) всегда ссылается на объект, который непосредственно вызывает этот метод, а не на сам прототип. Это важно, поскольку this указывает на текущий объект в контексте вызова функции.

Например:

const animal = {
	speak() {
		console.log(this.name + ' speaks');  
	} 
}; 
const dog = {  name: 'Rex' }; 
dog.__proto__ = animal; 
dog.speak(); // 'Rex speaks'

Здесь метод speak был унаследован от объекта animal, но когда он вызывается через объект dog, this ссылается на dog. Таким образом, this работает с объектом, который вызвал метод, а не с объектом-прототипом.

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

Уровень

  • Рейтинг:

    4

  • Сложность:

    8

Навыки

  • JavaScript

    JavaScript

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

#this

#прототипы

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