Показать сообщение отдельно
  #1 (permalink)  
Старый 06.04.2021, 00:27
Аватар для Babyslam
Интересующийся
Отправить личное сообщение для Babyslam Посмотреть профиль Найти все сообщения от Babyslam
 
Регистрация: 25.02.2015
Сообщений: 26

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