函数柯里化
/**
* Created by lei.wang on 2017/1/22.
*/
'use strict';
function plus(num) {
var adder = function () {
var _args = [];
var _adder = function _adder() {
[].push.apply(_args, [].slice.call(arguments));
return _adder;
};
_adder.toString = function () {
return _args.reduce(function (a, b) {
return a + b;
});
}
return _adder;
}
return adder()(num);
}
module.exports = plus;
2.函数二
<script type="text/javascript">
var fn = function(a,b,c) {
return a+b+c;
}
function curry(fn) {
var arr = [],
mySlice = arr.slice
fnLen = fn.length;
function curring() {
arr = arr.concat(mySlice.call(arguments));
if(arr.length < fnLen) {
return curring;
}
return fn.apply(this, arr);
}
return curring
}
console.log(curry(fn)(1)(2)(3));
//6
</script>
https://www.tongbiao.xyz/
浙公网安备 33010602011771号