为什么在定义函数之前需要使用分号?

我见过一些奇怪的事; 在一些jQuery插件函数的开头,这样的源代码如下:

 ;(function ($) {..... 

有人可以解释他们为什么需要使用; 在这种情况下?

当此文件中当前存在的代码不包含a时,此分号将帮助您将新代码正确地连接到文件中; 在末尾。

例如:

 (function() { })() // <--- No semicolon // Added semicolon to prevent unexpected laziness result from previous code ;(function ($) { })(); 

没有分号,第二个()将被解释为函数调用,并将尝试调用第一个函数的返回结果

这只是为了确保terminate任何先前的指令。

函数调用之前的半冒号是针对连接脚本和/或其他可能无法正确关闭的插件的安全网。

https://github.com/shichuan/javascript-patterns/blob/master/jquery-plugin-patterns/extend.html