1. 程式人生 > 實用技巧 >javascript定義函式後立即執行(IIFE)

javascript定義函式後立即執行(IIFE)

Talk is cheap, show me the code.

// Immediately Invoked Function Expression - IIFE
// 定義後立即執行的JavaScript函式。

// 基本語法,將函式定義在()內部,最後附加()執行函式。
// 一個小技巧,先寫下兩個(), 然後第一個()內新增函式定義,第二個()新增呼叫引數。

// 無引數的情況
(function () {
  console.log("I am running immediately after define");
})();


// 有引數的情況
(function(a, b) {
  console.log(a 
+ " + " + b + " = " + (a + b)); })(1, 2); // 使用箭頭函式,無參 (() => { console.log("IIFE with arrow function") })(); // 使用箭頭函式,有參。(如果箭頭函式體內只有一行程式碼,那麼return和{}可以省略) ((a, b) => console.log(a + b))(1, 2); // 變種寫法,第二個()也可以寫在第一個()內部結尾處,但是這種寫法不支援箭頭函式哦。 (function () { console.log("another way...") }());
// 使用一元運算子也可以建立IIFE,這種寫法在實際應用中不常見。 !(function() { console.log("IIFE with !") })(); ~(function() { console.log("IIFE with ~") })(); +(function() { console.log("IIFE with +") })(); -(function() { console.log("IIFE with -") })(); // IIFE也可以為函式取名字,但是這個名字沒啥用,因為你不能使用名字呼叫該函式。 (function test() { console.log(
"IIFE with name..."); })(); // 為了防止合併javascript檔案出錯,有時候要在函式前面加分號,表示前面語句結束,這是一個新的開始。詳見https://www.cnblogs.com/daysme/p/6440012.html // 為什麼要合併js檔案呢?很多打包工具如webpack為了減少bundle體積,都會合並js檔案,形成一個大的chunk.js,大家都不陌生吧。 ;(function () { console.log("I am a new start"); })();

== The End ==