Что выведет код Junior this, call, apply, bind обновлено
Потеря this у метода класса
Вопрос
Что выведет код? По строке на каждый вывод.
class Counter {
n = 0;
inc() { this.n++; return this.n; }
}
const c = new Counter();
const inc = c.inc;
console.log(c.inc());
try { inc(); } catch (e) { console.log(e.constructor.name); }
Попробуйте сами
Напишите, что выведет код: каждый вывод с новой строки.
Показать ответ и разбор
Коротко
Код выведет: 1, TypeError. Почему так В строгом режиме this у оторванного метода - undefined, обращение бросает TypeError.
Что выведет
1
TypeError
Разбор
Почему так
В строгом режиме this у оторванного метода - undefined, обращение бросает TypeError. В React это лечат стрелочным полем класса или bind в конструкторе.
Вывод
1
TypeError
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.