在javascript中有两种常用的声明函数的方法。
-
函数声明:
function foo() {
//
}
-
函数表达式
var foo = function() {}
如果function出现在行首,解析器会认为是一个函数声明,函数声明不能立即执行。如果要使用立即执行的函数,必须使用函数表达式。但是函数表达式的function关键字不能出现在行首,所以要用括号将整个表达式括起来。只要把 声明 变成 表达式(Expression) 就可以了。
实际上转变表达式的办法还是很多的,最常见的办法是把函数声明用一对 ()
包裹起来,于是就变成了:
void function (global) {
// 在这里,global 就是全局对象了
}(this) // 在浏览器里,this 就是 window 对象