【发布时间】:2026-01-16 21:15:01
【问题描述】:
有时(尽管很少)您需要扩展而不是覆盖父静态属性,例如下面的(非常蹩脚的)示例:
class Person {
static coreStats = {
role: "slacker",
weapon: null,
speed: 4,
vechicle: "roller blades",
};
}
class Ninja extends Person {
static coreStats = {
role: "silent assassin",
weapon: "katana",
speed: 99,
};
}
console.log(Ninja.coreStats); // But vechicle is no more
如何在不破坏父属性的情况下扩展子类中的静态属性?
【问题讨论】:
-
出于好奇,静态属性(不是静态方法)是 ES6 的一部分吗?或者在某个地方是否有 TC39 提案?
-
回滚编辑,因为我专门询问 ES2015。如果它在 2015 年不可用,很高兴答案是“在 es2015 中不可能”
-
好吧,那么:在 ES 2015 中不可能,因为它首先不支持类属性。因此,如果您“专门询问 ES2015”,我真的很想知道这个问题是如何产生的 :)
-
@zeroflagL Gotcha - 根据阅读这篇文章,我认为静态是 ES6/ES2015 的一部分:2ality.com/2015/02/es6-classes-final.html 但我必须离开,因为那只是在谈论静态方法
标签: javascript ecmascript-next