Satu fungsi tertib lebih tinggi ialah fungsi yang sama ada:
Ia adalah salah satu asas pengaturcaraan berfungsi.
Contoh fungsi tertib tinggi dalam JS:
//map() and reduce() let nums = [1, 2, 3, 4] let addOne = nums.map((i) => i+1) // [2,3,4,5] let combined = nums.reduce((res, cur) => res+=cur, 0) // 10
Bayangkan anda sedang bekerja dengan senarai nombor dan perlu melakukan operasi yang berbeza (cth., menggandakan, menduakan atau menambah pemalar). Daripada menulis berbilang gelung serupa, anda boleh mengabstrak gelagat dengan fungsi tertib lebih tinggi.
//normal version let numbers = [1, 2, 3, 4]; const squares = (nums) => { let result = []; for(let i of nums) { result.push(i*i); } return result; } const addThree = (nums) => { let result = []; for(let i of nums) { result.push(i+3); } return result; } squares(numbers) // [1,4,9,16] addThree(numbers) // [4,5,6,7]
//higher-order function version let numbers = [1, 2, 3, 4]; const applyAll = (func, nums) => { let result = []; for(let i of nums) { result.push(func(i)); } return result; } applyAll((i) => i*i, numbers) // [1,4,9,16] applyAll((i) => i+3, numbers) // [4,5,6,7]
Dengan satu fungsi tertib tinggi generik terpakaiSemua, anda boleh mengendalikan berbilang operasi dan mengelakkan kod berulang.
Dengan mengarang fungsi kecil, anda boleh membina tingkah laku yang lebih kompleks. Contohnya, jika anda ingin menapis senarai nombor dahulu untuk mendapatkan nombor genap sahaja, kemudian menggandakannya, kemudian menambah kesemuanya bersama-sama, anda boleh merantai fungsi tertib lebih tinggi.
//you can chain filter -> map -> reduce let numbers = [1, 2, 3, 4]; let result = numbers .filter(i => i%2===0) .map(i => i*2) .reduce((res, cur) => res+=cur, 0); // 12
Setiap langkah (penapisan, pemetaan, pengurangan) dikendalikan oleh fungsi tertib lebih tinggi, menjadikan proses lebih modular, lebih mudah diselenggara dan boleh diuji secara berasingan.
Itu sahaja! Terima kasih kerana membaca sejauh ini. Sehingga kali seterusnya!
Atas ialah kandungan terperinci Apakah fungsi peringkat tinggi dalam Javascript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!