跳到主要内容
CNode

关于闭包,

问答
Kkylezhang发布于 10 年前最后回复 10 年前
445270

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

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

查看回复

回复 (4)

S
sunfeng90#410 年前

牛人

G
gzhangzy#310 年前

niu

W
windyinwind#210 年前

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

C
captainblue2013#110 年前

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

这叫啥?柯里化吧

参与回复

登录后即可参与回复。登录