假设我有一个功能
function getSum (firstValue) { return firstValue + this.secondValue }
和一些班级
class TestClass {}
我如何动态地将函数分配getSum给类原型,并将 firstValue 绑定为 1,所以之后
// some code like TestClass.prototype.getSum = getSum.bind(null, 1)
const obj = new TestClass()
obj.secondValue = 2
console.log(obj.getSum()) // 3
我可以得到 3
对于对象,我可以这样做
obj.getSum = getSum.bind(obj, 1)
但是TestClass.prototype因为上下文还不存在所以我不能设置绑定的第一个参数这个难题可以直接解决吗?
间接地我可以做这样的事情
const firstValue = 1
TestClass.getSum = function () {
return getSum.bind(this, firstValue)()
}
或者像这样
TestClass.firstValue = 1
TestClass.getSum = function () {
return getSum.bind(this)(TestClass.firstValue)
}
但也许可以更直接地完成
Smart猫小萌
智慧大石
九州编程
相关分类