1.什么是立即执行函数(IIFE)
在了解立即执行函数之前先明确一下函数声明、函数表达式及匿名函数的形式,如下图两种常见方式:
//1. 匿名函数后面跟一个小括号, 整个包裹在一个括号运算符中
(function() {
//...
}())
//2. 匿名函数包裹在一个括号运算符中, 后面跟一个小括号
(function() {
//...
})()
建议使用第一种,这是W3C给出的标准
二、延伸(其他方式)
注:
只有表达式才能被执行符号执行!
// 第一种方式
var test = function (){
console.log("Aright?");
}();
// 第二种方式(添加 + - !)
+ function test(){
console.log("Bright?");
}();
// 第三种方式(W3C标准)
(function test(){
console.log("Cright?");
}();
)
//由于立即执行函数把函数命名给“消除”了,所以缩写成下面
(function (){
console.log("Cright?");
}();
)
注意点:
1.立即执行函数会立即执行当前函数且销毁,所以执行后再也找不到对应函数,减少内存;
2.立即执行函数有多种方式,尽量使用W3C标准