跳到主要内容
CNode

JavaScript函数括号的具体含义

社区
Kkaianny发布于 13 年前最后回复 13 年前
1388570

(function(){ // do somethiing }())

请问最外层的括号是什么意思?

查看回复

回复 (13)

1
151263#1313 年前

最外层的括号可以不要

D
DolphinX#1213 年前

函数句柄+括号 括号内参数选填

函数调用的格式

I
icetoggle#1113 年前

避免变量污染 if(true){ (function(){ var a = 1; }()); } console.log(a) //undefine =============== if(true) { var a = 1; } console.log(a) //1

A
alsotang#813 年前
引用 alsotang其实应该这样写的。 This code 返回一个函数对象,然后我们再通过 () 调用它。

@kaianny

(function () {
  console.log(111);
}
())

这样也没问题。但是不对的。

K
kaianny#713 年前
A
alsotang#613 年前

其实应该这样写的。

(function(){
      // do somethiing
})()

This code

(function(){
      // do somethiing
})

返回一个函数对象,然后我们再通过 () 调用它。

Z
zilong-thu#513 年前

不多余,是种良好的习惯。代码更多情况下是给人看的,不是给机器的。《编写可维护的JavaScript》都讲过了的……

K
kiinlam#413 年前

括号说明里面的东西要被执行

O
oracle-li#313 年前

最外层括号是必须的,不是为了让人注意,也不是多余的。 弄清楚函数表达式与函数声明就能弄清楚为什么要加这个括号了。

这种写法括号是必须的。

http://www.cnblogs.com/TomXu/archive/2011/12/31/2289423.html

这里讲的比较清楚。

L
leapon#213 年前

有点多余的感觉。

L
lellansin#113 年前

为了让人注意最后的自执行。。如果不加的话,很容易忽略这个 function 最后的自执行。。

参与回复

登录后即可参与回复。登录