在JavaScript中,每一個函式都式物件,都是Function的實例。所以我們可以宣告一個變數指向為函式物件。
function max(n1,n2){
return n1>n2?n1:n2;
}
let m = max;
如果有個字串陣列,想要過濾出陣列中字串長度大於6的元素,可以如下撰寫函式。
function filter(arr){
let ans = [];
for(let item of arr){
if(item.length>6)
ans.push(item);
}
return ans;
}
以上程式中的查詢條件寫死為ltem.length>6
那我們可以把這個判斷式包成一個獨立的函式,當成變數傳進函式裡面當成判斷式
function isTrue(value){
return value.length>6;
}
function filter(arr,boolFunction){
let ans = [];
for(let item of arr){
if(boolFunction(item))
ans.push(item);
}
return ans;
}
filter(arr,isTrue);