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函數外面調用是調不到的.