Подскажите пожалуйста почему по разному работает данный код:
Функция конструктор
function Rabbit(name) {
this.name = name;
this.func = () => { console.log(this.name)}
}
const rabbit = new Rabbit('Banny');
rabbit.func(); // Banny
А в обычном объекте или функции:
const rabbit = {
name: 'Banny',
func: () => { console.log(this.name)}
}
rabbit.func(); // undefined || window
В стрелочных функциях, this привязан к окружению, в котором была создана функция.
Все дело в ключевом слове new?