7

;在一些 jQuery 插件源代码中的函数开头看到了一些奇怪的东西,如下所示:

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

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

4

2 回答 2

11

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

例如:

(function() {

})()  // <--- No semicolon

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

})();

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

于 2013-05-01T14:00:25.070 回答
5

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

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

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

于 2013-05-01T14:00:01.873 回答