<script>
function add(a, b, c) {
return a + b + c;
}
// 封装一个柯里化函数
function curry(fn) {
return function curryFn() {
// 1. 一次性将所有参数传完
// arguments
if (arguments.length < fn.length) {
// 2. 没有一次性传完
var _arg = Array.from(arguments);
return function () {
// 当这个匿名函数被调用时
// 看这一传递进来的参数 + 上一次的参数 === fn.length
return curryFn(...Array.from(arguments).concat(_arg));
}
}
return fn(...arguments);
}
}
var curryFn = curry(add);
// console.log(curryFn(1,2,3));
console.log(curryFn(1, 2)(3));
console.log(curryFn(1)(2,3))
// http
// ajax('http://www.baidu.com','post','name = zengyouwei','age = 18','gender = 100')
// var fn = newAjax('http://www.baidu.com');
// var fn2 = fn('get')
// var fn1 = fn('post');
// fn('name = zengyouwei')
</script>