【发布时间】:2020-12-28 18:55:33
【问题描述】:
我有以下 js 代码,其中有 2 个常量,用于接收一个对象。两个对象都具有函数属性。我们也可以看到他们重复了代码。重复 onApprove、onError 和 onCancel 属性。
我寻求的是:如何将两者混合在一个新的 const 中,然后这两个对象都将继承新的 const + 额外属性。所以我总共有 3 个 const,在新的 const 中,我将重复使用 onApprove、onError 和 onCancel 的代码,而 PaypalSubscription 和 PaypalOffer const 将分别只有 createSubscription 和 createOrder。
我尝试了一些概念,但到目前为止没有任何效果。
知道如何做到这一点吗?谢谢!
const PaypalSubscription = {
createSubscription(data, actions) {
...
},
onApprove(res) {
return postCallback('approve', res);
},
onError(res) {
return postCallback('cancel', res);
},
onCancel(res) {
return postCallback('cancel', res);
},
}
const PaypalOffer = {
createOrder(data, { order }) {
...
},
onApprove(res) {
return postCallback('approve', res);
},
onError(res) {
return postCallback('cancel', res);
},
onCancel(res) {
return postCallback('cancel', res);
},
};
【问题讨论】:
-
用其他两个类扩展的共享方法创建一个基类似乎是一种不错的方法
-
否则您可以将共享方法拉出到另一个对象变量中,然后
Object.assign将它们拉到另外两个对象中。
标签: javascript object merge