关于闭包,
 发布于 9 年前  作者 kylezhang  4305 次预览  最后一次回复是 9 年前  来自 问答 

要实现一个能被如下这样调用的闭包,该怎么做呢?

第一种调用:add(1); 第二种调用:add(1)(2); 第三种调用:add(1)(2)(3); 第四种调用:add(1)(2)(3)(4); 第五种调用:add(1)(2)(3)(4)(5);

4 回复
captainblue2013

function add(x) { var sum = x; var tmp = function (y) { sum = sum + y; return tmp; }; tmp.valueOf = function () { return sum; }; return tmp; }

这叫啥?柯里化吧

windyinwind

楼上给的答案很对, 其实本质还是闭包, 函数 tmp 始终保持了对定义时 scope 的访问