关于之前一个问题:
即类似函数柯里化,问:
实现一个addNum()函数,要求
例1:
let sum = 1;
addNum(1,2).addNum(3).addNum(4); 10
例2:
let sum = 1;
addNum(1).addNum(3).addNum(4).addNum(5).addNum(6); 19
这道题,第一眼我感觉是函数柯里化,但是它没有终止条件,用传统的柯里化方法,我觉得有一点问题(可能是我水平不够),然后我想到了直接改原型方法,好像还行。
function a() {
Number.prototype.addNum = function () {
let sum = 0;
for (let i of arguments) {
sum += i;
}
return Number(this.valueOf() + sum);
};
let sum = 1;
console.log(sum.addNum(1, 2).addNum(1));
Number.prototype.addNum = null;
}
a();