Javascript:为什么在 console.log 中调用变量时将 "()"放在变量后面?

标签 javascript

我正在研究电子书“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/

相关文章:

javascript - 将数组转换为对象数组

javascript - 公理错误 : getaddrinfo ENOTFOUND

javascript - 如何使 div 内的 ul 标签可滚动

javascript - 如何计算在 Javascript 中 for 循环可以运行的最大次数?

javascript - 大数数组压缩

Javascript 动态嵌套对象

javascript - 使用 id 值来搜索类

javascript - 没有滚动条并排显示图像

javascript - 使用 Cheerio 对象制作 For 循环的正确方法是什么?

javascript - 如何获得一个可用的倒计时器,其中的按钮在每次点击后都会为计数器添加 +1