JavaScript 中函式是一種物件。
「函式」指的是將一或多段程式指令包裝起來,可以重複使用,也方便維護。
宣告函式的方法有好幾種,但不管是什麼方式,通常一個函式會包含三個部分:
- 函式的名稱(也可能沒有名稱,稍後會提到)
- 在括號
( )
中的部分,稱為「參數 (arguments) 」,參數與參數之間會用逗號,
隔開 - 在大括號
{ }
內的部分,內含需要重複執行的內容,是函式功能的主要區塊。
定義函式的方式
常見定義函式的方式有這幾種:
- 函式宣告(Function Declaration)
- 函式運算式(Function Expressions)
- 函式關鍵字(Function Keyword)
函式宣告(Function Declaration)
「函式宣告」應該是屬於最常見的用法:
1 | function 名稱([參數]) { |
範例:
1 | function fn(number) { |
函式運算式(Function Expressions)
將一個函式透過 =
指定給某個變數,以下範例為匿名函式(不具名字的函式):
1 | var fn = function (number) { |
也可以賦予函式名稱:
1 | var fn = function func(number) { |
請注意,這個名字只在「自己函式的區塊內」有效,脫離函式自身區塊後,變數 func
就不存在了:
1 | var fn = function func(number) { |
函式關鍵字(Function Keyword)
使用 Function
( F
大寫) 這個關鍵字來建立函式物件。 使用時將參數與函式的內容依序傳入 Function
,就可以建立一個函式物件了:
1 | var fn = new Function('number', 'return number * number'); |
透過 new Function
所建立的函式物件,每次執行時都會進行解析「字串」(如 'return number * number'
) 的動作,運作效能較差,所以通常實務上也較少會這樣做。
但不管是透過哪一種方式定義函式,呼叫函式的話就直接用「函式名稱(參數)」的方式,像 fn(5);
就可以了。