使用闭包的方式实现一个累加函数 addNum
使用闭包的方式实现一个累加函数 addNum,参数为 number 类型,每次返回的结果 = 上一次计算的值 + 传入的值,如: addNum(10); //10 addNum(12); //22 addNum(30); //52
写法一
function sum(numberOne) {
var count = numberOne;
return function by(numberTwo) {
if (numberTwo === undefined) {
return count;
} else {
count += numberTwo;
return by;
}
}
}
console.log(sum(10)(12)(30)());写法二
function sum(x) {
var result = 0;
for(var i=0;i<arguments.length;i++){
result += arguments[i];
}
var foo = function(){
for(var i=0;i<arguments.length;i++){
result += arguments[i];
}
return foo;
};
foo.toString = function(){
return result;
};
return foo;
}
console.log(+sum(10)(12)(30));写法三
function sum (n) {
var v = function (x) {
return sum (n + x);
};
v.valueOf = v.toString = function () {
return n;
};
return v;
}
console.log(+sum(10)(12)(30));来源:https://www.cnblogs.com/afel/archive/2018/07/11/9294253.html
本文内容仅供个人学习/研究/参考使用,不构成任何决策建议或专业指导。分享/转载时请标明原文来源,同时请勿将内容用于商业售卖、虚假宣传等非学习用途哦~感谢您的理解与支持!