Подскажите пожалуйста почему по разному работает данный код:
Функция конструктор
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?