群里有个出了一道有趣的题目,分享出来让大家看看。
function add(x) {________}; alert(add(2)(3)(4));
|
解法一,
function add(x) {
var c = 0;
return function (x) {
c = c + x ; arguments.callee.toString = function (){
return c;
};
return arguments.callee;
}(x);
};
alert(add(2)(3)(4));
|
解法二,
function add(x) {
return function (y){
return function (z){
return x+y+z;
}
}
};
alert(add(2)(3)(4));
|
解法三,
function add (a){
if (!isFinite(add.i)){
add.i = a
} else {
add.i += a;
}
add.valueOf = add.toString = function (){
return add.i
}
return add;
}
alert(add(2)(3)(4))
|
其实上题就是考curry,详见我另一篇博文。
如果你有不同的解法,也请多多指教!
如果您觉得此文有帮助,可以打赏点钱给我支付宝1669866773@qq.com ,或扫描二维码
![](https://images.cnblogs.com/cnblogs_com/rubylouvre/199042/o_zhihubao.png)
![](https://images.cnblogs.com/cnblogs_com/rubylouvre/199042/o_weixin2.png)
机器瞎学/数据掩埋/模式混淆/人工智障/深度遗忘/神经掉线/计算机幻觉/专注单身二十五年
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步