Javascript:为什么在console.log中调用变量后在变量后面加上“()”?

时间:2015-02-19 19:37:08

标签: javascript

我正在通过电子书和#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中调用。我在重写这段代码时遇到了一些麻烦,直到我意识到变量后面有括号!为什么我会在变量之后加上括号?

不要只在功能之后这样做吗?

此命令是否将变量用作函数?如果是这样,为什么?

是因为变量中包含的对象是函数吗?这似乎不太可能。

提前致谢!

3 个答案:

答案 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