IIFE:immediately-invoked function expression,叫作即时调用的函数表达式,也叫作自调用函数,表示函数在定义时就当即调用。express
函数调用方式:函数名或函数表达式的变量名后面加 () 运算符。markdown
注意:函数名定义的形式不能实现当即执行自调用,函数使用函数表达式形式能够实现当即执行,缘由是由于函数表达式定义过程当中,将一个函数矮化成了一个表达式,后面加()运算符就能够当即执行。app
启发:若是想实现 IIFE,能够想办法将函数矮化成表达式。函数矮化成表达式,就能够实现自调用。函数
能够让函数参与一些运算,也就是说给函数前面加一些运算符ui
数学运算符:+ - ()url
逻辑运算符:!非运算spa
+ function fun() {
console.log(1);
}();
- function fun() {
console.log(1);
}();
(function fun() {
console.log(1);
})();
! function fun() {
console.log(1);
}();
复制代码
IIFE 结构能够关住函数的做用域,在结构外面是不能调用函数的。3d
IIFE 最经常使用的是 () 运算符,并且函数能够不写函数名,使用匿名函数。由于它至关于一次性函数,能够不给函数名。code
经常使用的IIFE函数以下:orm
(function (a) {
console.log(a);
})(1);
(function (a) {
console.log(a);
})(4);
console.log(a)
复制代码
能够看到变量 a 是被关住的, 在IIFE函数外面调用是调不到的.