1.立即执行函数的两种常见形式:
(1)( function(){…} )() ,一个匿名函数包裹在一个括号运算符中
(function(){
console.log(test1) //输出123
})(123)
(2) ( function (){…} () )一个匿名函数后面跟一个小括号,然后整个包裹在一个括号运算符中
(function(){
console.log(test1) //输出123
}(123))
这两种写法是等价的。
立即执行函,要注意两点,一是函数体后面要有小括号(),二是函数体必须是函数表达式而不能是函数声明
通过定义一个匿名函数,创建了一个新的函数作用域,相当于创建了一个“私有”的命名空间,该命名空间的变量和方法,不会破坏污染全局的命名空间。此时若是想访问全局对象,将全局对象以参数形式传进去即可。
2.立即执行函数的好处:通过定义一个匿名函数,创建了一个新的函数作用域,相当于创建了一个“私有”的命名空间,该命名空间的变量和方法,不会破坏污染全局的命名空间。此时若是想访问全局对象,将全局对象以参数形式传进去即可。
(function(window){
...
}())