gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:32:08 27 4
gpt4 key购买 nike

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

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

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

最佳答案

你可以这样做:

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 并在重复的情况下用 Ninja.coreStats 覆盖 Person.coreStats

关于javascript - 你如何在 ES Next 中扩展静态属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36935048/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com