我正在查看has.js的代码,并对这里的初始分号感到困惑:
;(function(g){
// code
}()(this);据我所知,它绝对没有用。它不像()或!那样将函数放在表达式位置:(function(){}())或!function(){}()。它似乎只是一条空线的折线机。
这个分号的目的是什么?强迫症渴望生命的开始和结束之间的对称?)
发布于 2013-07-31 19:12:33
它是为了防止以前的任何代码将代码作为函数的参数执行。
即
mybrokenfunction = function(){
} //no semicolon here
(function(g){
})(this);将以匿名函数作为其参数来执行mybrokenfunction:
mybrokenfunction = function(){}(function(g){})(this);如果你能保证在你的前面不会有一个无终止的(没有分号)函数,你可以省略开始分号,但你不能,所以把额外的分号放进去就更安全了。
https://stackoverflow.com/questions/17978883
复制相似问题