Jika anda sedang mempelajari JavaScript, anda mungkin pernah menjumpai istilah Fungsi Pesanan Tinggi. Walaupun kedengarannya rumit, ia tidak begitu rumit. JavaScript, sebagai bahasa pengaturcaraan berfungsi, membenarkan penggunaan fungsi ini, yang penting dalam pengaturcaraan berasaskan fungsi.
Pengaturcaraan fungsional membayangkan penciptaan dan penggunaan fungsi sebagai blok binaan utama. Dalam pendekatan ini, fungsi boleh dihantar sebagai parameter kepada fungsi lain atau dikembalikan sebagai hasil. Cara pemikiran ini membolehkan penulisan kod yang teratur dan cekap.
JavaScript menganggap fungsi sebagai "warga kelas pertama". Ini bermakna fungsi ialah objek — jenis objek tertentu yang boleh diberikan kepada pembolehubah, diluluskan sebagai parameter dan digunakan dalam konteks yang berbeza, seperti nombor atau rentetan.
Contoh:
function pozdrav() { console.log('Zdravo, svete!'); } pozdrav(); // Ispisuje 'Zdravo, svete!' // Dodavanje svojstva funkciji pozdrav.jezik = 'srpski'; console.log(pozdrav.jezik); // Ispisuje 'srpski'
Dalam JavaScript, fungsi boleh diberikan kepada pembolehubah:
const kvadrat = function(x) { return x * x; }; console.log(kvadrat(5)); // Ispisuje 25
Salah satu ciri utama fungsi kelas pertama ialah keupayaan untuk menghantarnya sebagai hujah kepada fungsi lain:
function formalniPozdrav() { console.log("Kako ste?"); } function neformalniPozdrav() { console.log("Šta ima?"); } function pozdravVrsta(vrsta, formalan, neformalan) { if (vrsta === 'formalan') { formalan(); } else if (vrsta === 'neformalan') { neformalan(); } } pozdravVrsta('neformalan', formalniPozdrav, neformalniPozdrav); // Ispisuje 'Šta ima?'
Fungsi Susunan Tinggi ialah fungsi yang menerima fungsi lain sebagai hujah atau mengembalikannya sebagai hasil. Ini membolehkan penulisan kod yang lebih elegan dan ringkas. Contohnya termasuk kaedah peta, tapis dan kurangkan.
peta mencipta tatasusunan baharu dengan memanggil fungsi pada setiap elemen tatasusunan sedia ada:
Tiada kaedah peta:
const arr1 = [10, 20, 30, 40, 50]; const arr2 = []; for (let i = 0; i < arr1.length; i++) { arr2.push(arr1[i] * 2); } console.log(arr2); // [20, 40, 60, 80, 100]
Dengan kaedah peta:
const arr1 = [10, 20, 30. 40, 50]; const arr2 = arr1.map(item => item * 2); console.log(arr2); // [20, 40, 60, 8-, 100]
mencipta tatasusunan baharu dengan semua elemen yang memenuhi syarat yang diberikan:
const osobe = [ { ime: 'Pera', godine: 13 }, { ime: 'Mika', godine: 18 }, { ime: 'Laza', godine: 64 }, { ime: 'Ana', godine: 10 }, ]; const punoletni = osobe.filter(osoba => osoba.godine >= 18); console.log(punoletni); // [ { ime: 'Mika', godine: 18 }, { ime: 'Laza', godine: 64 } ]
reduce melaksanakan fungsi pada setiap ahli tatasusunan dan mengembalikan nilai unik:
Contoh dengan mengurangkan:
const arr = [4, 6, 10, 5, 25]; const suma = arr.reduce((akumulator, vrednost) => akumulator + vrednost, 0); console.log(suma); // 50
Bayangkan jika JavaScript tidak mempunyai kaedah peta terbina dalam. Kami boleh menciptanya sendiri:
function mapiraj(arr, fn) { const noviNiz = []; for (let i = 0; i < arr.length; i++) { noviNiz.push(fn(arr[i])); } return noviNiz; } const duzine = mapiraj(['JavaScript', 'Python'], item => item.length); console.log(duzine); // [10, 6]
Fungsi tertib lebih tinggi membolehkan fleksibiliti dan kesederhanaan kod dalam JavaScript. Dengan menggunakan ciri ini, kod kami menjadi lebih ringkas, teratur dan boleh diselenggara.
Atas ialah kandungan terperinci Memahami Fungsi Pesanan Tinggi dalam JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!