Я знаю, что стрелочные функции наследуют this
от объемлющей области. Тем не менее, до сих пор не могу понять, почему this
в стрелочной функции, определенной в литерале объекта, указывает на глобальный объект, а в конструкторе на созданный объект. Рассмотрим следующий код:
function Obj() {
this.show = () => {
console.log(this);
};
}
const o = new Obj();
const o2 = {
show: () => {
console.log(this);
}
}
o.show(); // o
o2.show() // window || undefinded