第一种调用:add(1); 第二种调用:add(1)(2); 第三种调用:add(1)(2)(3); 第四种调用:add(1)(2)(3)(4); 第五种调用:add(1)(2)(3)(4)(5);
function add(x) { var sum = x; var tmp = function (y) { sum = sum + y; return tmp; }; tmp.valueOf = function () { return sum; }; return tmp; }
这叫啥?柯里化吧
楼上给的答案很对, 其实本质还是闭包, 函数 tmp 始终保持了对定义时 scope 的访问
niu
牛人
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
function add(x) { var sum = x; var tmp = function (y) { sum = sum + y; return tmp; }; tmp.valueOf = function () { return sum; }; return tmp; }
这叫啥?柯里化吧
楼上给的答案很对, 其实本质还是闭包, 函数 tmp 始终保持了对定义时 scope 的访问
niu
牛人