在Javascript中是否有更直接的方法来实现这一目标?

问题描述 投票:-1回答:2

我有这样的继承:

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']
}

是否有一种方法可以让Childsome_object_property继承并扩展对象属性Parent

我知道我可以通过gettersetter达到最终结果。有没有更直接的方法?

javascript es6-class
2个回答
0
投票

它产生一个错误,说“超级不是可识别的标识符”。

是的,您不能在类字段初始化器中使用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将引用由父构造函数初始化的实例属性,然后再用新值覆盖它–它就像在构造函数内部编写一样运行。]


1
投票

你是不是这个意思?

© www.soinside.com 2019 - 2024. All rights reserved.