【发布时间】:2015-06-09 17:23:09
【问题描述】:
我是 JavaScript 编程语言的新手,目前正在学习闭包。我知道如果我们提醒返回函数的函数,我们会看到返回函数的源代码:
function sum(a) {
var sum = a
function f(b) {
sum += b
return f
}
f.toString = function() { return sum }
return f
}
var a=sum(2)(2)(2)(2); //why this sum function return sum
//instead of function f source code
alert(a);
在上面的代码中,为什么函数sum()返回内部范围变量sum而不是返回函数f源代码。 toString函数会覆盖函数sum()的返回类型吗?
【问题讨论】:
-
与您的问题没有直接关系,但恕我直言,您通过使用同名的变量和封闭函数来自找麻烦(而且它闻起来像某些版本的 BASIC)
标签: javascript