调用Object.keys()时,如何在类中显示getter属性


class cat {
constructor(first, last) {
this.firstname = firstname;
this.lastname = last;
}
get fullname() {
return this.firstname + " " + this.lastname;
}
}
let homeCat = new Cat("Bella", "Boo");

我正在创建一个类似于上面的类。调用Object.keys(homeCat)时,如何使homeCat.fullname显示在属性列表中?

您可以为this定义一个属性并使其可枚举。

class Cat {
constructor(first, last) {
this.firstname = first;
this.lastname = last;
Object.defineProperty(this, 'fullname', {
get () {
return this.firstname + " " + this.lastname;
},
enumerable: true
});
}
}

let homeCat = new Cat("Bella", "Boo");
console.log(homeCat.fullname);
console.log(Object.keys(homeCat));

最新更新