我有这样的继承:
class Parent {
some_object_property = ["some_object_property_depending_on_initialization"];
constructor() {...}
}
class Child extends Parent {
some_object_property = [...super.some_object_property, 'child_property']
}
是否有一种方法可以让Child
从some_object_property
继承并扩展对象属性Parent
?
我知道我可以通过getter
和setter
达到最终结果。有没有更直接的方法?
它产生一个错误,说“超级不是可识别的标识符”。
是的,您不能在类字段初始化器中使用super。要么将该行放入其所属的构造函数中(例如@DannyEbbers的答案中),要么直接使用this
关键字-效果一样好,无需在此处使用super
:
class Parent {
some_object_property = ["some_object_property_depending_on_initialization"];
}
class Child extends Parent {
some_object_property = [...this.some_object_property, 'child_property']
}
[this.some_object_property
将引用由父构造函数初始化的实例属性,然后再用新值覆盖它–它就像在构造函数内部编写一样运行。]
你是不是这个意思?