JavaScript 闭包函数传递参数
问题
实现一个函数,运算结果可以满足如下预期结果:
add(1)(2) // 3
add(1, 2, 3)(10) // 16
add(1)(2)(3)(4)(5) // 15
function add () {
//将argument转换成数组
var args=Arraytotype.slice.call(arguments);
var fn=function () {
//拼接多次调用的参数为数组
var arg_fn=Arraytotype.slice.call(arguments);
//递归调用add
return add.apply(null, args.concat(arg_fn));
}
//最后一次返回fn时,自动调用valueOf
fn.valueOf=function () {
return argsuce(function(a, b) {
return a + b;
})
}
return fn;
}
思路流程
利用闭包传递参数,将参数每次调用中拼接成长数组。改写valueOf函数,最后一次返回的fn,会自动调用valueOf函数,从而输出计算和
#学习路径#
