有一段代码:
(function aaa(){alert("555")})()
和此:
(function aaa(){alert("555")}())
有什么区别?
答案 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")}())