1. 把其他函式當作引數 (callback function / 回呼函式, 即呼叫時傳入她, 然後她再呼叫回來)
2. 會回傳函式
- 使用標準程式庫原本的方法
var nums = [1,3,5,7,9,8,6,4,2]; nums.sort(function(x,y){ if(x<y) return -1; if(x>y) return 1; return 0; }); console.log('nums = ' + nums); var names = ['Ian','Peter','Kevin']; names = names.map(function(name){ return name.toUpperCase(); }); console.log('names = ' + names);
顯示 :
- 自訂高階函式
// 依照條件建立字串 function buildString(n, callback) { var result = ''; for (var i = 0; i < n; i++) { result += callback(i); } return result; } // 建立 a~z var aIndex = 'a'.charCodeAt(0); // 97 var alphabet = buildString(26, function (i) { // 這個 callback function 會被執行 26 次, i 接收到的是在 for 迴圈內丟給 callback function 的值, 所以會得到 0 ~ 25 return String.fromCharCode(aIndex + i); }); console.log('alphabet = ' + alphabet); // 建立 1~9 var digits = buildString(9, function (i) { return i + 1; }); console.log('digits = ' + digits); // 建立4個亂數 var random = buildString(4, function () { return Math.floor(Math.random() * 10); }); console.log('random = ' + random);
顯示 :
沒有留言:
張貼留言