Analisis mendalam fungsi panggil balik dalam js (perkongsian penjelasan terperinci)

奋力向前
Lepaskan: 2021-09-17 10:53:09
ke hadapan
2224 orang telah melayarinya

Dalam artikel sebelumnya "Artikel yang menerangkan masalah penunjuk ini dalam js (dengan kod) ", saya memperkenalkan anda kepada masalah penunjuk ini dalam js. Artikel berikut akan memberi anda penjelasan terperinci tentang fungsi panggil balik dalam js Rakan, lihat.

Analisis mendalam fungsi panggil balik dalam js (perkongsian penjelasan terperinci)

Penjelasan terperinci tentang fungsi panggil balik JS

Fungsi panggil balik JS

Apakah fungsi panggil balik , penjelasan rasmi : Apabila program berjalan, dalam keadaan biasa, program aplikasi akan sering memanggil fungsi yang telah disediakan dalam perpustakaan melalui API. Walau bagaimanapun, sesetengah fungsi pustaka memerlukan aplikasi untuk lulus fungsi itu terlebih dahulu, supaya ia boleh dipanggil pada masa yang sesuai untuk menyelesaikan tugas sasaran. Fungsi yang dihantar dan dipanggil kemudian dipanggil fungsi panggil balik.

biasanya menghantar fungsi B ke fungsi lain A, dan kemudian memanggil fungsi A apabila diperlukan.

Secara terang-terangan, panggil balik ialah jejak balik Mula-mula tentukan badan fungsi yang akan digunakan, dan kemudian panggil fungsi ini selepas digunakan Kami biasanya menghantar callback sebagai parameter ke dalam fungsi yang ditakrifkan dahulu. Mari kita lihat sekeping kod jquery:

$("p").hide(1000,function(){
alert("The paragraph is now hidden");
});
Salin selepas log masuk

Jquery di atas ialah fungsi panggil balik Mula-mula, selepas melaksanakan kesan hide, ia kemudian memanggil fungsi panggil balik function.

Mari kita lihat sekeping kod JS sekali lagi untuk melihat bagaimana fungsi panggil balik dilaksanakan:

function Buy(name,goods1,callback) {
    alert(name+' buy '+goods1);
    if(callback&&typeof(callback)==="function")
        callback();
}
Buy('xiaoming','apple',function(){
    alert("shopping finish");
});
Salin selepas log masuk

Kod yang sangat mudah Saya tidak tahu apa yang saya ingin beli di permulaan. Apabila saya membeli sesuatu, saya segera Untuk memanggil fungsi yang ditakrifkan sebelum ini, adalah lebih baik untuk menambah peraturan penghakiman, kerana premisnya ialah callback mestilah fungsi, dan hasil keluarannya ialah:

xiaoming buy apple
shopping finish
Salin selepas log masuk

Penutupan dan panggil balik

Mari kita lihat soalan penutupan masing-masing. ujian di sini ialah penutupan,

ialah penutupan, dan fungsi tanpa nama ialah fungsi panggil balik, i ialah pembolehubah dalam penutupan. Apabila panggilan balik
var nodes = document.getElementsByTagName('button');
for (var i = 0; i < nodes.length; i++) {
    nodes[i].addEventListener(&#39;click&#39;, function() {
        console.log(&#39;You clicked element #&#39; + i);
   });
}
Salin selepas log masuk
dilaksanakan, gelung telah tamat Pembolehubah i pada masa ini diberikan nilai

dan addEventListener ialah jumlah bilangan nod. Jadi hasilnya adalah addEventListenernode.lengthnode.length Jadi bagaimana untuk menukar nilai pulangannya kepada fungsi Memandangkan nilai pembolehubah i akan dikeluarkan, maka kita akan memperkenalkan

supaya nilai setiap gelung disimpan dalam ingatan, itu sahaja:
You clicked element # node.length
Salin selepas log masuk

iFungsi panggil balik PHP

var nodes = document.getElementsByTagName(&#39;button&#39;);
for (var i = 0; i < nodes.length; i++) {
(function(i) {
    nodes[i].addEventListener(&#39;click&#39;, function () {
        console.log(&#39;You clicked element #&#39; + i);
        })
       })(i);
}
Salin selepas log masuk
Mari kita bincangkan secara ringkas tentang cara melaksanakan fungsi panggil balik dalam php (hasilnya ialah 1, 2, 3 , 4):

php menjalankan pemprosesan panggilan balik untuk setiap elemen tatasusunan masuk Mari kita lihat penutupan PHP Gunakan kata kunci

untuk mewarisi pembolehubah di luar skop:
<?php
    $array=array(1,2,3,4);
    array_walk($array,function($value){
        echo $value;});
?>
Salin selepas log masuk

. use Hasil pulangan ialah:

<?php
    function getcouter(){
        $i=0
        return function() use($i)(
            echo $i;
        )};
    }
    $counter=getcounter();
    echo $counter();
    echo $counter();
?>
Salin selepas log masuk

Kaedah penggunaan PHP rasmi

1,1
Salin selepas log masuk

Malah, dari segi prinsip, JS dan PHP adalah serupa, kedua-duanya mentakrifkan fungsi terlebih dahulu. dan kemudian perlu Panggil sahaja apabila tiba masanya.

class hello {
function callback($a,$b) {
echo "$a,$b";
}
static function callback($c,$d){
echo "$c,$d";        
}
}
//将类名作为参数
call_user_func(array(&#39;hello&#39;,&#39;callback&#39;),"hello","world");
//输出 hello,world
//将对象作为参数
call_user_func(array(new hello(),&#39;callback&#39;),"hello","world");
//将静态方法作为参数
call_user_func(hello::callback,"hello","world");
//输出 hello,world
Salin selepas log masuk
Pembelajaran yang disyorkan:

Tutorial video JS

Atas ialah kandungan terperinci Analisis mendalam fungsi panggil balik dalam js (perkongsian penjelasan terperinci). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
js
sumber:juejin.im
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan