GOOGLE ADS

пятница, 15 апреля 2022 г.

object.method() показывает ошибку. Какова причина?


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;
}
};

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...