


Nota kajian tentang fungsi panggil balik dalam kemahiran js_javascript
Apakah fungsi panggil balik? Sebelum belajar, saya benar-benar tidak tahu cara menggunakan fungsi panggil balik js dan fungsinya Dalam artikel ini, saya akan memperkenalkan contoh fungsi panggil balik yang saya pelajari yang perlu tahu lebih lanjut boleh rujuk untuk rujukan.
Prinsip fungsi panggil balik:
Saya akan pergi sekarang dan saya akan memberitahu anda apabila saya tiba"
Ini ialah proses tak segerak Semasa proses "Saya pergi" (pelaksanaan fungsi), "anda" boleh melakukan apa-apa sahaja (pelaksanaan fungsi selesai) "memberitahu anda" (panggilan balik) dan proses seterusnya
Contoh
1.Kaedah asas
<script language="javascript" type="text/javascript"> function doSomething(callback) { // … // Call the callback callback('stuff', 'goes', 'here'); } function foo(a, b, c) { // I'm the callback alert(a + " " + b + " " + c); } doSomething(foo); </script>
Atau gunakan borang fungsi tanpa nama
<script language="javascript" type="text/javascript"> function dosomething(damsg, callback){ alert(damsg); if(typeof callback == "function") callback(); } dosomething("回调函数", function(){ alert("和 jQuery 的 callbacks 形式一样!"); }); </script>
2. Kaedah lanjutan
Gunakan kaedah panggilan javascript
<script language="javascript" type="text/javascript"> function Thing(name) { this.name = name; } Thing.prototype.doSomething = function(callback) { // Call our callback, but using our own instance as the context callback.call(this); } function foo() { alert(this.name); } var t = new Thing('Joe'); t.doSomething(foo); // Alerts "Joe" via `foo` </script>
Lulus parameter
<script language="javascript" type="text/javascript"> function Thing(name) { this.name = name; } Thing.prototype.doSomething = function(callback, salutation) { // Call our callback, but using our own instance as the context callback.call(this, salutation); } function foo(salutation) { alert(salutation + " " + this.name); } var t = new Thing('Joe'); t.doSomething(foo, 'Hi'); // Alerts "Hi Joe" via `foo` </script>
Gunakan aplikasi javascript untuk lulus parameter
<script language="javascript" type="text/javascript"> function Thing(name) { this.name = name; } Thing.prototype.doSomething = function(callback) { // Call our callback, but using our own instance as the context callback.apply(this, ['Hi', 3, 2, 1]); } function foo(salutation, three, two, one) { alert(salutation + " " + this.name + " – " + three + " " + two + " " + one); } var t = new Thing('Joe'); t.doSomething(foo); // Alerts "Hi Joe – 3 2 1" via `foo` </script>
Contoh
//Jika sumber data yang disediakan ialah integer, iaitu markah pelajar tertentu, apabila num<=0, ia akan diproses oleh lapisan bawah dan apabila n>0, ia akan diproses oleh peringkat tinggi lapisan.
//Salin fungsi berikut dan simpan sebagai 1.js
function f(num,callback){ if(num<0) { alert("调用低层函数处理!"); alert("分数不能为负,输入错误!"); }else if(num==0){ alert("调用低层函数处理!"); alert("该学生可能未参加考试!"); }else{ alert("调用高层函数处理!"); callback(); } }
//Simpan fail test.html dan 1.js berikut dalam direktori yang sama:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <script src="1.js" type="text/javascript"></script> <title>无标题文档</title> <script type="text/javascript"> function test(){ var p=document.getElementById("pp"); pp.innerText=""; var num=document.getElementById("score").value; f(num,function(){ //匿名高层处理函数 if(num<60) alert("未及格!"); else if(num<=90) alert("该生成绩优良!"); else alert("该生成绩优秀!"); }) pp.innerText="by since1978 qq558064!" } </script> </head> <body> <p> 回调函数示例:当学生成绩score<=0分时候,由底层处理;当score>0时,由高层处理。 </p> 请输入学生成绩<input type="text" id="score"> <input type="button" onClick="test()" value=" 看看结果"> <p id="pp"></p> </body> </html>
Berikut adalah tambahan daripada netizen lain:
Mod panggil balik dalam javascript:
kelihatan seperti:
function writeCode(callback){ //执行一些事物, callback(); //... } function intrduceBugs(){ //....引入漏洞 } writeCode(intrduceBugs);
Kami lulus aplikasi fungsi untuk writeCode() dan biarkan writeCode melaksanakannya pada masa yang sesuai (dipanggil selepas kembali)
Mari kita lihat contoh yang tidak begitu baik dahulu (ia akan dibina semula kemudian):
//模拟查找页面中的dom节点,将查找到的节点存在数组里面统一返回 //此函数只用于查找不对dom节点做任何的逻辑处理 var findNodes = function(){ var i = 100000;//大量的循环, var nodes = [];//用于存储找到的dom节点 var found; while(i){ i -=1; nodes.push(found); } return nodes; } //将查找找到的dom节点全部隐藏 var hide = function(nodes){ var i = 0, max = nodes.length; for(;i<max;i++){ //findNodes后面有括号代表立即执行,先执行findNodes()然后执行hide()< hide(findNodes()); 执行函数 } ; nodes[i].style.display="none" } 上面的方法是低效的,以为hide()必须再次遍历有findNodes()返回的数组节点,如何避免这种多余的循环呢。 我们不能直接在findNodes中对查询到的节点进行隐藏(这样检索就可修改逻辑耦合了),那么他就不再是一个通用函数了。 解决方法是用回调模式,可以将节点隐藏逻辑以回调函数方式传递给findNodes()并委托其执行 //重构findNodes以接受一个回调函数 var findNodes = fucntion(callback){ var i = 100000, nodes = [], found; //检查回调函数是否可用调用的 if(typeof callback !== 'function'){ callback = false; } while(i){ i -= 1; if(callback){ callback(found); } nodes.push(found); } return nodes; } //回调函数 var hide = function(node){ node.style.display = 'none '; } //找到后续节点并在后续执行中对其进行隐藏 findNodes(hide);//先执行findNodes然后执行hide,当然回调函数也可以在调用主函数时创建:findNodes(function(node){node.style.display = 'none';});

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Kaedah menulis fungsi panggil balik java ialah: 1. Panggilan balik antara muka, tentukan antara muka, yang mengandungi kaedah panggil balik, gunakan antara muka sebagai parameter di mana panggilan balik perlu dicetuskan, dan panggil kaedah panggil balik pada masa yang sesuai 2. Panggilan balik kelas dalam tanpa nama , anda boleh menggunakan kelas dalam tanpa nama untuk melaksanakan fungsi panggil balik untuk mengelakkan daripada membuat kelas pelaksanaan tambahan 3. Panggilan balik ungkapan Lambda Dalam Java 8 dan ke atas, anda boleh menggunakan ungkapan Lambda untuk memudahkan penulisan fungsi panggil balik.

Pengenalan kepada penulisan asas dan penggunaan fungsi panggil balik Java: Dalam pengaturcaraan Java, fungsi panggil balik adalah corak pengaturcaraan biasa Melalui fungsi panggil balik, kaedah boleh dihantar sebagai parameter kepada kaedah lain, dengan itu mencapai panggilan tidak langsung kaedah tersebut. Penggunaan fungsi panggil balik adalah sangat biasa dalam senario seperti didorong peristiwa, pengaturcaraan tak segerak dan pelaksanaan antara muka. Artikel ini akan memperkenalkan penulisan asas dan penggunaan fungsi panggil balik Java, dan memberikan contoh kod khusus. 1. Definisi fungsi panggil balik Fungsi panggil balik ialah fungsi khas yang boleh digunakan sebagai parameter

Komunikasi komponen Vue: menggunakan fungsi panggil balik untuk komunikasi komponen Dalam aplikasi Vue, kadangkala kita perlu membiarkan komponen berbeza berkomunikasi antara satu sama lain supaya mereka boleh berkongsi maklumat dan bekerjasama antara satu sama lain. Vue menyediakan pelbagai cara untuk melaksanakan komunikasi antara komponen, salah satu cara biasa ialah menggunakan fungsi panggil balik. Fungsi panggil balik ialah mekanisme di mana fungsi dihantar sebagai hujah kepada fungsi lain dan dipanggil apabila peristiwa tertentu berlaku. Dalam Vue, kita boleh menggunakan fungsi panggil balik untuk melaksanakan komunikasi antara komponen, supaya komponen boleh

Fungsi panggil balik adalah salah satu konsep yang perlu diketahui oleh setiap pengaturcara bahagian hadapan. Panggilan balik boleh digunakan dalam tatasusunan, fungsi pemasa, janji dan pengendalian acara. Artikel ini akan menerangkan konsep fungsi panggil balik dan membantu anda membezakan antara dua jenis panggil balik: segerak dan tak segerak.

Menggunakan fungsi panggil balik pangkalan data di Golang boleh mencapai: melaksanakan kod tersuai selepas operasi pangkalan data yang ditentukan selesai. Tambah tingkah laku tersuai melalui fungsi berasingan tanpa menulis kod tambahan. Fungsi panggil balik tersedia untuk operasi memasukkan, mengemas kini, memadam dan pertanyaan. Anda mesti menggunakan fungsi sql.Exec, sql.QueryRow atau sql.Query untuk menggunakan fungsi panggil balik.

Aplikasi fungsi panggil balik Java dalam pengaturcaraan dipacu peristiwa Pengenalan kepada fungsi panggil balik Fungsi panggil balik ialah fungsi yang dipanggil selepas peristiwa atau operasi berlaku. Ia biasanya digunakan dalam pengaturcaraan dipacu peristiwa, di mana program menyekat sementara menunggu acara berlaku. Apabila peristiwa berlaku, fungsi panggil balik dipanggil dan program boleh meneruskan pelaksanaan. Di Java, fungsi panggil balik boleh dilaksanakan melalui antara muka atau kelas dalaman tanpa nama. Antara muka ialah mekanisme untuk mentakrifkan tandatangan fungsi yang membenarkan satu kelas untuk melaksanakan kelas lain

Analisis senario aplikasi fungsi panggil balik biasa dalam Python memerlukan contoh kod khusus Fungsi panggil balik merujuk kepada menghantar fungsi sebagai parameter kepada fungsi lain dalam pengaturcaraan, dan melaksanakan fungsi parameter ini apabila peristiwa tertentu berlaku. Fungsi panggil balik digunakan secara meluas dalam pengaturcaraan tak segerak, pemprosesan acara, pengaturcaraan GUI dan bidang lain. Artikel ini akan menganalisis senario aplikasi fungsi panggil balik biasa dalam Python dan memberikan contoh kod khusus yang berkaitan. Pengaturcaraan Asynchronous Dalam pengaturcaraan asynchronous, fungsi panggil balik sering digunakan untuk mengendalikan hasil tugas asynchronous. Apabila perlu untuk melaksanakan penggunaan

Penunjuk fungsi dan fungsi panggil balik ialah kedua-dua alat untuk melaksanakan mekanisme panggil balik. Penunjuk fungsi dicipta pada masa penyusunan dan tidak boleh diubah suai dan perlu dipanggil secara eksplisit fungsi panggil balik dibuat pada masa jalan dan boleh diikat secara dinamik kepada fungsi yang berbeza dan dipanggil secara automatik oleh fungsi panggil balik. Oleh itu, penunjuk fungsi sesuai untuk panggilan balik statik, manakala fungsi panggil balik sesuai untuk panggilan balik dinamik.
