Javascript 什么';下面两种代码样式的区别是什么

Javascript 什么';下面两种代码样式的区别是什么,javascript,anonymous-function,Javascript,Anonymous Function,代码1: 代码2: var x=(function(){ return { greet:function(){ alert('Hello from code1'); } }; })(); 两者都将被调用,如下所示: var x=function(){ return { greet:function(){ alert('Hello from code2'); } }; }(); 在样式1中,我将自执行函数括在括号内,而在第

代码1:

代码2:

var x=(function(){
  return {
    greet:function(){
      alert('Hello from code1');
    }
  };
})();
两者都将被调用,如下所示:

var x=function(){
  return {
    greet:function(){
      alert('Hello from code2');
    }
  };
}();
在样式1中,我将自执行函数括在括号内,而在第二段代码中,它不是。两者的工作原理相同。
那么,代码1和代码2之间的区别是什么?哪种是发回重审方式?

这两个示例之间的区别最小。两者都从立即调用的函数的返回值创建变量。第一个作为表达式包装在括号中,第二个是立即调用的函数。另请参见

没有实际区别。有些人喜欢一种方式而不是另一种方式,类似于喜欢在同一行或下一行放大括号,或者标签与空格,或者写
x=1+2
而不是
x=(1+2)


额外的括号可以增加清晰度或混乱度,这完全取决于风格偏好。

作为一个注释-我最初建议将其关闭为“主要基于观点”,但后来意识到-虽然答案可能是“its a opinion”,但问题本身可以具体回答。不,它们是不同的。第一个将运行函数,然后将其分配给
x
,而第二个将
函数
分配给
x
,然后运行
x
函数。这可以在函数不返回任何内容时进行测试。
x.greet();