如果我有這樣的:如何在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'可能更有用。但是,無論什麼工作當然是好的:) –
其使用分配擴展原型的常見模式,因爲這是使用屬性訪問器擴展它的唯一方法。 –