如何在ES Next中扩展静态属性?

时间:2016-04-29 09:48:28

标签: javascript ecmascript-next

有时(虽然很少)你需要扩展,而不是覆盖父静态属性,例如下面的(非常蹩脚)示例:

nth-of-type()

如何在不破坏父属性的情况下扩展子类中的静态属性?

1 个答案:

答案 0 :(得分:5)

你可以这样做:

class Person {
    static coreStats = {
        role: "slacker",
        weapon: null,
        speed: 4,
        vechicle: "roller blades",
    };
}

class Ninja extends Person {
    static coreStats = Object.assign({}, Person.coreStats, {
        role: "silent assassin",
        weapon: "katana",
        speed: 99
    });
}
console.log(Ninja.coreStats);

如果重复,这将合并coreStats并覆盖Person.coreStatsNinja.coreStats