Konsep Fungsi Callback: Fungsi panggilan balik adalah fungsi yang dipanggil melalui penunjuk fungsi. Jika Anda melewati pointer (alamat) fungsi sebagai argumen ke fungsi lain, ketika pointer ini digunakan untuk memanggil fungsi yang ditunjukkannya, kami katakan ini adalah fungsi callback.
Callback adalah fungsi yang disahkan sebagai argumen ke fungsi lain dan dieksekusi setelah fungsi induknya selesai.
Alasan untuk menggunakan fungsi panggilan balik: Anda dapat memisahkan penelepon dari callee. Penelepon tidak peduli tentang siapa yang menjadi penelepon.
Pertimbangkan contoh seperti ini:
Jika tingkat dan tingkat tinggi dari suatu proyek dikoordinasikan oleh personel yang berbeda. personel bawah, saya membutuhkan Anda.
Staf yang mendasari: Saya akan memberi Anda data, dan bagaimana menampilkan dan memprosesnya adalah bisnis Anda Data dan kemudian Anda akan menjadi diri sendiri.
Salinan kode adalah sebagai berikut:
// Data mewakili sumber data yang disediakan oleh lapisan yang mendasarinya, dan funcname mewakili fungsi panggilan dari lapisan yang lebih tinggi
function (data, funcName) {
1.Data milik Kasus 1 dan ditangani oleh lapisan yang mendasarinya;
2.Data milik Kasus 2. Ini diproses oleh tingkat tinggi.
...
}
Saya mungkin belum menjelaskannya, kita bisa melihat contoh dan memahaminya sekaligus
Salinan kode adalah sebagai berikut:
// Jika sumber data yang disediakan adalah integer, yang merupakan skor siswa, ketika num <= 0, itu diproses oleh lapisan yang mendasarinya, dan ketika n> 0, itu diproses oleh lapisan atas.
// Salin fungsi berikut dan simpan ke 1.js
fungsi f (num, callback) {
if (num <0) {
peringatan ("Panggilan fungsi tingkat rendah untuk diproses!");
waspada ("Skor tidak bisa negatif, kesalahan input!");
} lain jika (num == 0) {
peringatan ("Panggilan fungsi tingkat rendah untuk diproses!");
waspada ("Siswa mungkin tidak mengikuti ujian!");
}kalau tidak{
peringatan ("Panggilan pemrosesan fungsi tingkat tinggi!");
callback ();
}
}
Salinan kode adalah sebagai berikut:
// Simpan file test.html berikut di direktori yang sama dengan 1.js:
<!
"http://www.w3.org/tr/html4/loose.dtd">
<Html>
<head>
<meta http-equiv = "konten tipe" content = "text/html; charset = gb2312">
<skrip src = "1.js" type = "text/javaScript"> </script>
<title> unt judul dokumen </iteme>
<type skrip = "Teks/JavaScript">
function test () {
var p = document.getElementById ("pp");
pp.innerText = "";
var num = document.geteLementById ("skor"). nilai;
f (num, function () {// fungsi pemrosesan tingkat tinggi anonim
if (num <60) alert ("Gagal!");
lain jika (num <= 90) waspada ("Generasi sangat baik!");
Lainnya peringatan ("Hasil yang sangat baik untuk generasi ini!");
pp.innerText = "oleh Sejak1978 QQ558064!"
}
</script>
</head>
<body>
<p>
Contoh fungsi callback: Ketika skor siswa adalah skor <= 0, itu diproses oleh lapisan yang mendasarinya;
</p>
Harap masukkan skor siswa <input type = "text" id = "skor">
<input type = "tombol" ontClick = "test ()" value = "lihat hasilnya">
<p id = "pp"> </p>
</body>
</html>
Jalankan file ini dan Anda dapat melihat efeknya