我正在研究电子书“eloquent javascript”中的示例。在第 51 页的“函数”一章的“闭包”部分中,有以下示例:
function wrapValue2(n) {
var localVariable = n;
return function() {
return localVariable;
};
}
var wrap2 = wrapValue2(3);
console.log(wrap2());
正如您在上面代码的最后一行“console.log(wrap2());”中看到的,该变量在 console.log 内部被调用。我在重写这段代码时遇到了一些麻烦,直到我意识到变量后面有括号!为什么我要在变量后面加上括号?
我不是只在函数结束后才这样做吗?
该命令是否将变量用作函数?如果是这样,为什么?
是因为变量中包含的对象是函数吗?这似乎不太可能。
提前致谢!
最佳答案
确实:这些括号用于调用 wrap2
,因为它是一个函数。
你使用
var wrap2 = wrapValue2(3);
函数wrapValue2
返回另一个函数。
所以wrap2
是一个函数。
关于Javascript:为什么在 console.log 中调用变量时将 "()"放在变量后面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28615366/