JavaScript 函式(Function)


JavaScript 中函式是一種物件

「函式」指的是將一或多段程式指令包裝起來,可以重複使用,也方便維護。

宣告函式的方法有好幾種,但不管是什麼方式,通常一個函式會包含三個部分:

  • 函式的名稱(也可能沒有名稱,稍後會提到)
  • 在括號 ( ) 中的部分,稱為「參數 (arguments) 」,參數與參數之間會用逗號 , 隔開
  • 在大括號 { } 內的部分,內含需要重複執行的內容,是函式功能的主要區塊。

定義函式的方式

常見定義函式的方式有這幾種:

  • 函式宣告(Function Declaration)
  • 函式運算式(Function Expressions)
  • 函式關鍵字(Function Keyword)

函式宣告(Function Declaration)

「函式宣告」應該是屬於最常見的用法:

1
2
3
4
function 名稱([參數]) {
// 函數內容 ...

}

範例:

1
2
3
function fn(number) {
return number * number;
}

函式運算式(Function Expressions)

將一個函式透過 = 指定給某個變數,以下範例為匿名函式(不具名字的函式):

1
2
3
4
var fn = function (number) {

return number * number;
};

也可以賦予函式名稱:

1
2
3
4
var fn = function func(number) {

return number * number;
};

請注意,這個名字只在「自己函式的區塊內」有效,脫離函式自身區塊後,變數 func 就不存在了:

1
2
3
4
5
6
var fn = function func(number) {
console.log( typeof func ); // "function"
return number * number;
};

console.log( typeof func ); // undefined

函式關鍵字(Function Keyword)

使用 Function ( F 大寫) 這個關鍵字來建立函式物件。 使用時將參數與函式的內容依序傳入 Function,就可以建立一個函式物件了:

1
var fn = new Function('number', 'return number * number');

透過 new Function 所建立的函式物件,每次執行時都會進行解析「字串」(如 'return number * number' ) 的動作,運作效能較差,所以通常實務上也較少會這樣做。

但不管是透過哪一種方式定義函式,呼叫函式的話就直接用「函式名稱(參數)」的方式,像 fn(5); 就可以了。

參考文獻

  1. [https://ithelp.ithome.com.tw/articles/10191549

  2. https://blog.gtwang.org/programming/defining-javascript-functions/