函式既是JavaScript的一種物件,也被稱為「一等公民」(first-class citizen)。原因在於,函式可以放入任何「變數、物件與陣列」裡。還可以將函式當作參數,傳給「另一個函式」。
必須注意的是不論「函式」或「值」,都是「物件」之一。而所謂的值,在函式中,首先會在「參數」裡。
一個函式中的小括號 ( ) 所帶之值,即為參數。
如:
const p = function(a, b){
return a + b;
};
p (1, 1); //得出 1 + 1等於2
p (2, 2); //得出 2 + 2等於4
有一種函式,可將其他函式當「參數」用,此即高階函式(higher-order function)。在實際網頁應用中,會放在<head>與<body>範圍內的<script>裡。舉例常見者有:
延遲執行一次:
setTimeout (作什麼事, 多久後)
//1000= 1000毫秒= 1秒
//例 (hi, 2000) 呼叫2秒後執行函式hi
取代原文件宣告的物件內容(取代原網頁「標籤hi」中的字):
const document.querySelector (“#hi”)
console.log (h)
網頁事件監聽器:
document.addEventListener (“DOMContentLoaded”), () => { }
//DOMContentLoaded代表:網頁載完再執行。
除了以小括號呼叫參數外,還有call與apply方法也能呼叫之。加上bind方法,是JavaScript必學的常用方法。
說明請詳MDN文件: