如果我有这样的:如何在JavaScript中动态创建静态方法?
class Math {
static add(a, b) {
return a + b
}
}
,我希望把它变成:
class Math {
static add(a, b) {
return a + b
}
static subtract(a, b) {
return a - b
}
}
有没有办法来动态地做到这一点?例如。
class Math {
static add(a, b) {
return a+b
}
}
Math.extend({
subtract: function(a, b) {
return a-b
}
})
Math.subtract(1,1) // 0
为什么当'Math.subtract = function(){...}'应该可以正常工作时使用'Object.assign()'? – jfriend00
由于OP使用'Math.extend(...)'使它看起来像他们可能想要添加更多的方法,在这种情况下'Object.assign'可能更有用。但是,无论什么工作当然是好的:) –
其使用分配扩展原型的常见模式,因为这是使用属性访问器扩展它的唯一方法。 –