call,apply
1.call要逐个传入参数
2apply方法的必须
function curry(fn) { var args=Array.prototype.slice.call(arguments,1); return function() { var innerArgs=Array.prototype.slice.call(arguments); var finalArgs=args.concat(innerArgs); console.log(finalArgs); return fn(finalArgs);//正确写法fn.apply(null,finalArgs); }; } function add(num1,num2) { return num1+num2; } var curriedAdd=curry(add,5); console.log(curriedAdd(3));//输出5,3undefined,因为add没第二个参数,第一个参数为数组
浙公网安备 33010602011771号