4

以下の (非常に不十分な) 例のように、親の静的プロパティを上書きするのではなく、(めったにではありませんが) 拡張する必要がある場合があります。

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

親プロパティを破壊せずに、子クラスの静的プロパティを拡張するにはどうすればよいですか?

4

1 に答える 1

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.coreStatsしますNinja.coreStats

于 2016-04-29T09:55:59.997 に答える