CNode

JavaScript函数括号的具体含义

Kkaianny发布于13 年前最后回复13 年前13 回复8822 浏览0 收藏

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

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

查看回复

回复 (13)

L
lellansin#1·13 年前

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

L
leapon#2·13 年前

有点多余的感觉。

O
oracle-li#3·13 年前

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

这种写法括号是必须的。

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

这里讲的比较清楚。

K
kiinlam#4·13 年前

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

Z
zilong-thu#5·13 年前

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

A
alsotang#6·13 年前

其实应该这样写的。

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

This code

(function(){
      // do somethiing
})

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

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

@kaianny

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

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

I
icetoggle#11·13 年前

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

D
DolphinX#12·13 年前

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

函数调用的格式

1
151263#13·13 年前

最外层的括号可以不要

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