可能重复:
What does the leading semicolon in JavaScript libraries do?
我注意到很多jQuery插件都是以
;(function(){ /* something in here */ })();
我只是想知道开头的分号是用来做什么的,还有结尾的空括号。
发布于 2011-08-22 17:38:43
分号在那里,以防你把这个脚本放在某个“坏”脚本后面,这个脚本没有正确地用分号结束它的最后一行。在这种情况下,这两个脚本可能会组合在一起,导致无效代码。例如,如果您要将多个脚本合并到单个响应中。
末尾的()执行函数。这是在创建一个闭包。私有变量和方法可以在此函数的作用域内声明,不能从脚本外部访问。
发布于 2011-08-22 17:39:14
此构造:
(function(){ /* something in here */ })()
用于在Javascript中创建新的作用域。
More info on function scope here.
关于分号,我以前从未见过它。我认为这是连接多个脚本时的安全性,因为在某些情况下,文件末尾的分号是可选的。
https://stackoverflow.com/questions/7145514
复制相似问题