可能的重复:
JavaScript 库中的前导分号有什么作用?
我注意到很多 jQuery 插件都是以
;(function(){ /* something in here */ })();
我只是想知道开头的分号是什么,以及末尾的空括号是什么。
可能的重复:
JavaScript 库中的前导分号有什么作用?
我注意到很多 jQuery 插件都是以
;(function(){ /* something in here */ })();
我只是想知道开头的分号是什么,以及末尾的空括号是什么。
分号在那里,以防您在一些“坏”脚本之后包含此脚本,这些脚本没有用分号正确关闭其最后一行。在这种情况下,这两个脚本可能会组合在一起并导致无效代码。例如,如果您将多个脚本合并为一个响应。
最后的 () 正在执行函数。这是在创建一个闭包。私有变量和方法可以在这个函数的范围内声明,不能从脚本外部访问。
这个构造:
(function(){ /* something in here */ })()
用于在 Javascript 中创建新范围。
关于分号,我以前从未见过。我认为这是连接多个脚本时的安全性,因为在某些情况下,分号在文件末尾是可选的。