我正在通过电子书和#34;雄辩的javascript中的示例进行操作。"在第51页上的“函数”一章的“闭包”部分中,出现以下示例:
function wrapValue2(n) {
var localVariable = n;
return function() {
return localVariable;
};
}
var wrap2 = wrapValue2(3);
console.log(wrap2());
正如您在上面代码的最后一行中所看到的那样," console.log(wrap2());,"变量在console.log中调用。我在重写这段代码时遇到了一些麻烦,直到我意识到变量后面有括号!为什么我会在变量之后加上括号?
不要只在功能之后这样做吗?
此命令是否将变量用作函数?如果是这样,为什么?
是因为变量中包含的对象是函数吗?这似乎不太可能。
提前致谢!
答案 0 :(得分:2)
确切地说:这些括号用于调用wrap2
,因为它是一个函数。
您使用
var wrap2 = wrapValue2(3);
函数wrapValue2
返回另一个函数。
所以wrap2
是一个函数。
答案 1 :(得分:0)
功能......
function wrapValue2(n) {
var localVariable = n;
return function() {
return localVariable;
};
}
返回一个函数(参见return function()
)......需要执行才能得到答案。
答案 2 :(得分:0)
由于wrap2
将在最后wrapValue2
起作用,因此返回function
而不是value
。