JavaScript中的括号括号是什么意思?

时间:2016-08-31 19:32:03

标签: javascript

我正在开发一个基于Java和JavaScript构建的应用程序,而今天我发现了一些我无法理解的代码。

 var myVariable = (function(configObj){
    var width = configObj.width;
    var height = configObj.height;
 })

 gadgetFuncArray.push(myVariable);

我认为这会产生一系列功能?但我不确定你为什么要将一堆配置选项作为一系列函数推送。

思想

2 个答案:

答案 0 :(得分:1)

在您的示例中,括号在功能上无用,可以轻松删除。人们有时(虽然不太常见,因为ES6)使用这些括号来创建IIFE。来自Wikipedia page

  

立即调用的函数表达式可用于避免变量   从区块内吊起,防止污染全球   环境同时允许公众访问方法   保留函数中定义的变量的隐私。

这看起来像:(function () {})()

我建议您查看Kyle Simpson的详细电子书您不了解JS ,尤其是scope and closures上的部分。

答案 1 :(得分:1)

将一个函数包装在括号中没有什么特别之处,当你想在声明函数后立即调用函数时,这通常用于IIFE:

var module = (function foo(config) {
   return {
      getConfig: function() {
         return config.my;
      }
   }
}({ my: 'config' }));

但是,您发布的代码似乎并未发生这种情况。有一些理由需要一组函数,尽管它在发布的代码中并不过分明显。