什么是立即执行函数?
定义一个函数之后,马上调用函数名,从而实现定义之后直接执行,这样的函数就叫做立即执行函数。
立即执行函数不需要去调用它,它自己会自动执行,除此之外,和普通的函数的唯一区别就是,立即执行函数执行完就自动销毁,其他方面都是一致的。
立即执行函数的写法
首先,我们要知道,只有表达式才能被执行符号执行(执行符号就是一对括号"()")
立即执行函数有两种比较常用的写法:
//W3C推荐第一种写法
(function(){
//do something
}())
(function (){
//do something
})()
同时,只要是满足表达式后面跟上执行符号的,都可以成为立即执行函数:
!function (){}() //逻辑非符号使函数变成了一条表达式,所以能被执行符号执行,下面的例子同理
+function (){}()
-function (){}()
new function (){}()
立即执行函数也可以有参数:
(function (a, b, c){
console.log(a + b + c);
}(1, 2, 3))
立即执行函数也可以有返回值:
var num = (function (a, b, c){
var sum = a + b + c;
return sum;
}(1, 2, 3))
立即执行函数的作用
- 从头到尾只执行一次的函数可以用立即执行函数来写
- 不必为函数命名,避免了污染全局变量