IIFE
IIFE:immediately-invoked function expression,叫做即时调用的函数表达式,也叫做自调用函数,表示函数在定义时就立即调用。
函数调用方式:函数名或函数表达式的变量名后面加 () 运算符。
注意:函数名定义的形式不能实现立即执行自调用,函数使用函数表达式形式可以实现立即执行,原因是因为函数表达式定义过程中,将一个函数矮化成了一个表达式,后面加()运算符就可以立即执行。
启发:如果想实现 IIFE,可以想办法将函数矮化成表达式。函数矮化成表达式,就可以实现自调用。
函数矮化成表达式的方法
可以让函数参与一些运算,也就是说给函数前面加一些运算符
-
数学运算符:+ - ()
-
逻辑运算符:!非运算
+ function fun() {
console.log(1);
}();
- function fun() {
console.log(1);
}();
(function fun() {
console.log(1);
})();
! function fun() {
console.log(1);
}();
IIFE说明
IIFE 结构可以关住函数的作用域,在结构外面是不能调用函数的。
IIFE 最常用的是 () 运算符,而且函数可以不写函数名,使用匿名函数。因为它相当于一次性函数,可以不给函数名。
常用的IIFE函数如下:
(function (a) {
console.log(a);
})(1);
(function (a) {
console.log(a);
})(4);
console.log(a)
可以看到变量 a 是被关住的, 在IIFE函数外面调用是调不到的.