function sum(a) {
var sum = a
function f(b) {
sum += b
return f
}
f.toString = function () { return sum }
return f
}
var a = sum(0)(1)(2)(3)(4)(5);
有人可以向我解释一下这段代码是如何工作的吗?我真的不知道如何以这种方式调用具有多个闭包的函数。 为什么当我在浏览器控制台中打印 a 时,结果是“function 15”而不仅仅是 15
最佳答案
And why when i print a in the browsers console the result is "function 15" and not just 15
要获得最终结果,您应该调用toString
函数。此闭包将保存总和,直到您调用 toString 函数为止。
function sum(a) {
var sum = a
function f(b) {
sum += b
return f
}
f.toString = function() {
return sum;
}
return f
}
var a = sum(0)(1)(2)(3)(4)(5);
document.write(a.toString());
关于javascript - 调用带有多个闭包的 javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36603977/