= name;
this.getName = () => this.name;
}
const cat = new Pet('Fluffy');
console.log(cat.getName());
флави выводится
1)почему не выводится если сделать функцию не стрелочной?(потому что у обычной функции контекст вычисляется в момент вызова?)
2)почему вот так не выводится результат тогда
const cat = {
name: 'Fluffy',
getName: () => this.name
}
console.log(cat.getName());
Ответ лежит на поверхности — стрелочная функция не имеет контекста, это основное отличие после синтаксиса
но в первом примере она берет контекст у функции конструктора при вызове если же там будет обычная функция, то будет undefined
const cat = { name: 'Fluffy', getName() { return this.name; } } console.log(cat.getName()); // Fluffy
Обсуждают сегодня