JavaScript自調用函數是一種比較常見的函數調用方式,在寫JavaScript代碼的過程中很容易遇到。這種函數調用方式通常被稱為“自執行函數”、“自包含函數”、“立即調用函數”等,其主要作用是為了在函數定義后立即執行一些操作或初始化一些變量。下面我們來詳細學習一下JavaScript自調用函數。
原理和用法
JavaScript自調用函數的基本原理就是在函數定義后立即調用該函數,其語法結構如下:(function (){ // 函數體 })();通常情況下,我們使用自調用函數時,會將其定義在一個JavaScript全局作用域中,這樣定義的變量和函數就不會污染到全局命名空間中。一個經典的例子就是解決變量作用域的問題:
(function(){ var x = 1; alert(x); })(); alert(x);輸出值為1和undefined,這就說明了自調用函數的作用——它定義的變量和函數只在自身作用域中可見,不會影響到外部作用域。
傳遞參數
在JavaScript自調用函數中,我們可以傳遞參數。例如:(function(a, b){ alert(a + b); })(2, 3);輸出值為5。
返回值
自調用函數也可以返回值,例如:var x = (function(){ return 1; })(); alert(x); //輸出1
多個自調用函數的嵌套
我們可以在一個自調用函數中嵌套使用另一個自調用函數,例如:(function(){ var x = 5; console.log(x); (function(){ var x = 10; console.log(x); })(); console.log(x); })();輸出值為5、10、5。