แนวคิดฟังก์ชั่นการโทรกลับ: ฟังก์ชั่นการโทรกลับเป็นฟังก์ชั่นที่เรียกผ่านตัวชี้ฟังก์ชั่น หากคุณผ่านตัวชี้ (ที่อยู่) ของฟังก์ชั่นเป็นอาร์กิวเมนต์ไปยังฟังก์ชั่นอื่นเมื่อตัวชี้นี้ใช้เรียกฟังก์ชันที่ชี้ไปที่เราบอกว่านี่เป็นฟังก์ชันการโทรกลับ
การเรียกกลับเป็นฟังก์ชั่นที่ส่งผ่านเป็นอาร์กิวเมนต์ไปยังฟังก์ชั่นอื่นและดำเนินการหลังจากฟังก์ชั่นหลักเสร็จสมบูรณ์
เหตุผลในการใช้ฟังก์ชั่นการโทรกลับ: คุณสามารถแยกผู้โทรออกจาก Callee ผู้โทรไม่สนใจว่าใครคือผู้โทร
พิจารณาตัวอย่างเช่นนี้:
หากโครงการด้านล่างและระดับสูงมีการประสานงานโดยบุคลากรที่แตกต่างกัน บุคลากรด้านล่างฉันต้องการคุณ
พนักงานพื้นฐานกล่าวว่า: ฉันจะให้ข้อมูลแก่คุณและวิธีการแสดงและประมวลผลเป็นธุรกิจของคุณ ข้อมูลแล้วคุณจะเป็นตัวของตัวเอง
การคัดลอกรหัสมีดังนี้:
// ข้อมูลแสดงถึงแหล่งข้อมูลที่จัดทำโดยเลเยอร์พื้นฐานและ funcName แสดงถึงฟังก์ชันการโทรของเลเยอร์ที่สูงขึ้น
ฟังก์ชั่น (data, funcname) {
1.Data เป็นของกรณีที่ 1 และได้รับการจัดการโดยชั้นพื้นฐาน
2.Data เป็นของกรณีที่ 2 มันถูกประมวลผลโดยระดับสูง
-
-
ฉันอาจยังไม่ได้ทำให้ชัดเจนเราสามารถเห็นตัวอย่างและเข้าใจทั้งหมดในครั้งเดียว
การคัดลอกรหัสมีดังนี้:
// หากแหล่งข้อมูลที่ให้ไว้เป็นจำนวนเต็มซึ่งเป็นคะแนนของนักเรียนเมื่อ NUM <= 0 จะถูกประมวลผลโดยชั้นพื้นฐานและเมื่อ N> 0 จะถูกประมวลผลโดยชั้นบน
// คัดลอกฟังก์ชั่นต่อไปนี้และบันทึกเป็น 1.js
ฟังก์ชั่น f (num, callback) {
ถ้า (num <0) {
การแจ้งเตือน ("เรียกฟังก์ชั่นระดับต่ำเพื่อประมวลผล!");
การแจ้งเตือน ("คะแนนไม่สามารถเป็นลบได้ข้อผิดพลาดอินพุต!");
} อื่นถ้า (num == 0) {
การแจ้งเตือน ("เรียกฟังก์ชั่นระดับต่ำเพื่อประมวลผล!");
การแจ้งเตือน ("นักเรียนอาจไม่ได้สอบ!");
}อื่น{
การแจ้งเตือน ("เรียกการประมวลผลฟังก์ชั่นระดับสูง!");
การโทรกลับ ();
-
-
การคัดลอกรหัสมีดังนี้:
// บันทึกไฟล์ test.html ต่อไปนี้ในไดเรกทอรีเดียวกับ 1.js:
<!
"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>
<tite> เอกสารชื่อ UNT </title>
<script type = "text/javascript">
ฟังก์ชั่นทดสอบ () {
var p = document.getElementById ("pp");
pp.innerText = "";
var num = document.getElementById ("คะแนน") ค่า;
f (num, function () {// ฟังก์ชั่นการประมวลผลระดับสูงที่ไม่ระบุชื่อ
ถ้า (num <60) แจ้งเตือน ("ล้มเหลว!");
อื่นถ้า (num <= 90) การแจ้งเตือน ("รุ่นนั้นยอดเยี่ยม!");
การแจ้งเตือนอื่น ("ผลลัพธ์ที่ยอดเยี่ยมสำหรับคนรุ่นนี้!");
pp.innerText = "โดยตั้งแต่ปี 1978 QQ558064!"
-
</script>
</head>
<body>
<p>
ตัวอย่างฟังก์ชั่นการโทรกลับ: เมื่อคะแนนของนักเรียนคือคะแนน <= 0 มันจะถูกประมวลผลโดยเลเยอร์พื้นฐาน; เมื่อคะแนน> 0 จะถูกประมวลผลโดยเลเยอร์อาวุโส
</p>
โปรดป้อนคะแนนนักเรียน <อินพุต type = "text" id = "คะแนน">
<อินพุต type = "ปุ่ม" onclick = "test ()" value = "ดูผลลัพธ์">
<p id = "pp"> </p>
</body>
</html>
เรียกใช้ไฟล์นี้และคุณสามารถดูเอฟเฟกต์