function add(x) {________}; alert(add(2)(3)(4)); //填空,使结果为9 解法一, 复制代码 代码如下: //貘大 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,详见我另一篇博文。 如果你有不同的解法,也请多多指教!
推荐阅读
Firefox/Chrome/Safari的中可直接使用$/$$函数进行调试
接着在各个浏览器中测试,发现Firefox/Chrome/Safari中有,IE9/Opera没有。 $ 相当于 document.getElementById $$ 相当于 document.querySelectorAll 在chrome控制台敲$,$$一目了然
这两个函数都是浏览器调试工>>>详细阅读
本文标题:javascript题目,重写函数让其无限相加
地址:http://www.17bianji.com/kaifa2/JS/23624.html
1/2 1