javascript模块之间是否存在任何差异:
(function(){}())
vs
(function(){})()
首先来自Crockford的书“好的部分”。 第二个是使用Typescript生成的代码。
答案 0 :(得分:1)
没有什么不同。如果您的函数没有返回任何值
,您也可以编写第三个选项!function(){}()
答案 1 :(得分:0)
不,这两个函数之间没有区别,它们是如何被调用的。在这两种情况下,您都要创建一个匿名函数并立即执行它。
需要“外部”parens的唯一原因是,当JavaScript解析器期望看到一个语句时,如果它看到function
,它假定后面的内容将是一个函数声明 。但是我们想要一个函数 expression ,所以通过给它一个初始的(
,我们把它放到一个期望表达式的状态。
但是()
调用函数的地方(在}
之后或在包装parens之外)没有任何区别。
答案 2 :(得分:0)
没有差别,它们都是一样的。我倾向于使用后者...它似乎更有意义。 (function(){})
定义了该函数,然后使用()
调用它。但无论如何,在第一个(
之前使用(前导)分号。 Reference