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函数,从而输出计算和

#学习路径#
全部评论
valueOf为啥我的不会被调用
点赞 回复 分享
发布于 2021-12-23 23:58
可以学习再深入的使用柯里化函数解决
点赞 回复 分享
发布于 2021-12-18 23:56

相关推荐

点赞 评论 收藏
分享
牛客62533758...:华为不卡双非,而是卡院校hhhh
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务