【发布时间】:2019-01-06 13:29:44
【问题描述】:
我有由 Person 类继承的 BaseEntity 类。如何在 Person 类中列出基类属性 (BaseEntity)。
class BaseEntity {
_id: string;
created: number;
constructor(id: string, created: number = Date.now()) {
this._id = id;
this.created = created;
}
}
class Person extends BaseEntity {
name: string;
age: number;
constructor(id: string, name: string, age: number) {
super(id);
this.name = name;
this.age = age;
}
listBaseClassProperties() {
//console.log(super); HOW CAN I DO THIS?
}
}
当我在派生类 (Person) 方法之一中尝试 console.log(super) 时,我得到 undefined...
【问题讨论】:
-
这听起来像an X/Y problem。为什么要只列出基类的属性?
-
“当我在派生类 (Person) 方法之一中尝试
console.log(super)时,我得到了 undefined...” 这表明您认为有多个对象在实例化派生类时创建。 (你不会是第一个这么想的人!:-))没有。创建了一个单个对象,它同时具有派生类和基类的特性。 -
我可以通过 JavaScript 的任何运算符获取 EntityBase 类的属性吗,例如
Object.getPrototypeOf(EntityBase)? -
实例属性通常不存在于原型上(这不是你获得
BaseEntity实例原型的方式)。
标签: typescript