> Что изменится в поведении методов при использовании классов и вызове методов из инстанса в JavaScript (JavaScript)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: Точка
Стек: JavaScript
> Пример ответа
В JavaScript при использовании классов и вызове методов из инстанса ключевое изменение связано с контекстом this. В методах класса, объявленных через синтаксис method(), this автоматически привязывается к экземпляру класса при вызове через точку (например, obj.method()). Однако если передать метод как колбэк (например, в обработчик события), контекст теряется, и this становится undefined в строгом режиме или глобальным объектом в нестрогом.
Пример:
JAVASCRIPTclass MyClass {constructor(value) {this.value = value;}show() {console.log(this.value);}}const obj = new MyClass(42);obj.show(); // 42 - контекст сохранёнconst callback = obj.show;callback(); // undefined (или ошибка в strict mode)
Чтобы избежать потери контекста, используют стрелочные функции в конструкторе (они захватывают this из области видимости) или явную привязку через .bind(). В отличие от обычных объектов, где метод можно переопределить динамически, в классах методы находятся на прототипе, а не в самом инстансе, что экономит память, но требует внимания к контексту.
> Похожие задачи по frontend
В чем разница между двойным (==) и тройным (===) равенством в JavaScript?
Как устроены стек вызовов и куча в JavaScript
Можно ли передать функцию как аргумент в другую функцию в JavaScript
Что такое JavaScript
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью