关于闭包,
发布于 8 年前 作者 kylezhang 3305 次浏览 来自 问答

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

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

4 回复

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

这叫啥?柯里化吧

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

回到顶部