Встречается на собеседованиях • сегодня
Какая конструкция в JavaScript может сделать новый scope для this
В JavaScript новый scope для this можно создать с помощью:
- Стрелочных функций - они не создают свой
this, а берут его из внешнего контекста:
js
const obj = {
name: 'Test',
regularFunc: function() {
console.log(this.name); // 'Test'
const arrowFunc = () => {
console.log(this.name); // 'Test' (берет this из regularFunc)
};
arrowFunc();
}
};- Методов bind/call/apply - явно привязывают контекст:
js
function test() {
console.log(this.name);
}
const obj = {name: 'Bound'};
const boundFunc = test.bind(obj);
boundFunc(); // 'Bound'- Классов -
thisвнутри методов класса ссылается на экземпляр:
js
class Example {
constructor() {
this.value = 42;
}
showValue() {
console.log(this.value);
}
}- IIFE - создает новый контекст выполнения:
js
const obj = {
name: 'Original',
method: function() {
(function() {
console.log(this.name); // undefined (this - global/window)
})();
}
};
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы