使用闭包的方式实现一个累加函数 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
本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!