不需要呼叫,也可以直接執行的函式叫做立即函式。
具名函式的寫法;
(function IIFE(){
console.log('這個就是立即函式');
}());匿名函式的寫法;
(function (){
console.log('這個就是立即函式');
})();
寫法:具名函式前後加上 (),之後在最後的內層或外層加上()。
特點:
1. 立即執行
2. 如果在函式外,無法被再次執行,以下範例:
(function IIFE(){
console.log('這個就是立即函式');
}());
console.log(IIFE); // 在函式外執行
這時會跳出錯誤,IIFE is not defined
所以這種立即函式大多都用匿名函式來書寫。
3. 限制變數的作用域,變數只能在函式內部執行,以下範例:
(function (){
var ming = '小明';
console.log(ming); //可以得到'小明'
})();console.log(ming); // 會得到ming is not defined
4. 可以傳遞參數
(function(where){
console.log(where); // 得到'小美在這裡'
})('小美在這裡'); //參數寫在後面的括號裡
5. 可以宣告變數
var whereIsMay = (function(where){
return where;
})('小美在這裡');console.log(whereIsMay); //得到'小美在這裡'