立即执行函数叫做
IIFE immediately Invoke Function Expression
立即的 调用 函数 表达式
函数声明!= 函数表达式
把一个(匿名)函数(函数声明式)赋值给一个变量的形式 函数表达式
var test2 = function() {
console.log('Function Expression'); //函数表达式
}
function test1() {
console.log('Function Declaration'); //函数声明
}
//语法错误,执行符号只能跟在函数表达式后面
function test1() {
console.log('Function Declaration');
}(); //语法错误
//当一个函数需要立即执行的情况,该函数需要形成表达式形式
//下面的例子都是正确的
var a = function() {
console.log('Function Expression);
}()
+function () {
console.log('Function Expression);
}()
(function() {
console.log('Function Expression);
})()
(function test1() {
console.log(test);
console.log(test.length);
console.log(argument.length);
console.log('Hello');
})(1,2,3)
立即执行函数的好处
1、可以创建一个与外界没有任何关联的作用域,独立作用域
2、执行完成之后自动销毁
3、ES3 ES5 立场上是模块的概念, 立即执行函数模拟模块化
//封闭作用域、抛出接口
// 向外部抛出一系列属性和方法
// 向window上保存属性和方法