const student = {
// data property
firstName: 'Monica',
// accessor property(getter)
get getName() {
return this.firstName;
}
};
// accessing data property
console.log(student.firstName); // Monica
// accessing getter methods
console.log(student.getName); // Monica
// trying to access as a method
console.log(student.getName()); // errorРешение проблемы
Вы используете геттер:
синтаксис связывает свойство объекта с getфункцией, которая будет вызываться при поиске этого свойства.
Итак, то, что у вас есть в вашем коде, является getNameсвойством (и для согласованности оно должно называться name), а не методом.
Это то же самое, что иметь:
Object.defineProperty(student, 'name', {
get() {
return this.firstName;
},
});
Если вы хотите иметь метод a вместо свойства, вы должны определить его как таковой:
const student = {
// data property
firstName: 'Monica',
// method, not getter
getName() {
return this.firstName;
}
};
Но поскольку JS поддерживает геттер, вы могли бы иметь то, что вы написали (просто менее запутанный код, удалив двойное «получить получить»):
const student = {
// data property
firstName: 'Monica',
// accessor property(getter)
get name() {
return this.firstName;
}
};
Комментариев нет:
Отправить комментарий