const person = {
name: 'bbb',
getName: () => {return console.log(this.name)}
}
Таким образом, вы определили имя объекта person
с 2 свойствами name
и getName
.Тип name
является строкой, а тип getName
является функцией ( функция стрелки ).Одним из различий между обычной функцией и функцией со стрелкой является способ использования ключевого слова this
.
Поскольку person
является объектом, а НЕ функцией, вы не можете создать новый экземпляр этого объекта:
var p = new person(); // Error: person is not a constructor
В противном случае, если Person
является функцией
const Person = function() {
this.name = 'bbb';
this.getName = () => {return console.log(this.name)}
}
, вы можете создать ее новый экземпляр:
const test = new Person();
Эта функция имеет 2 свойства,тоже.Тип обоих свойств аналогичен первому.
На ваш вопрос я предлагаю вам проверить this
объект внутри функций:
const person = {
name: 'bbb',
getName: () => {console.log(this)}
}
person.getName();
const Person = function() {
this.name = 'bbb';
this.getName = () => {console.log(this)}
}
const test = new Person();
test.getName();