Встречается на собеседованиях • сегодня

Как запретить изменять контекст

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

Стрелочные функции не имеют своего this и всегда используют контекст родительской области:

javascript
const obj = {
  name: 'Test',
  method: () => console.log(this.name) // this не привязан к obj
};

Жесткое связывание через bind():

javascript
const obj = {
  name: 'Test'
};

function logName() {
  console.log(this.name);
}

const boundFunc = logName.bind(obj);
boundFunc(); // Всегда будет 'Test', даже при call/apply

Также можно использовать Object.freeze() для защиты объекта от изменений:

javascript
const obj = Object.freeze({name: 'Immutable'});
obj.name = 'Changed'; // Не сработает в strict mode
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы