自我调用JavaScript(括号)

时间:2016-07-07 20:29:19

标签: javascript

有一段代码:

(function aaa(){alert("555")})()

和此:

(function aaa(){alert("555")}())

有什么区别?

1 个答案:

答案 0 :(得分:0)

如果你把第一个放在一起两次,它只会在产生TypeError之前运行第一个:



(function aaa(){alert("555")})()(function aaa(){alert("555")})()




如果你将第二个放在一起两次,它会在生成TypeError之前运行它们两个:



(function aaa(){alert("555")}())(function aaa(){alert("555")}())




简而言之,他们为范围代码提供了两种不同的样式选择,以避免混淆全局命名空间,但我的经验中的第二种方式往往更受青睐,因为它在多个范围时不太容易出错连在一起。最好始终用分号开始范围,以确保它在连接时执行,如下所示:



;(function aaa(){alert("555")}());(function aaa(){alert("555")}())