การโทรกลับคืออะไร
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่นการเรียกกลับเป็นฟังก์ชั่นที่เรียกผ่านตัวชี้ฟังก์ชั่น หากคุณผ่านตัวชี้ (ที่อยู่) ของฟังก์ชั่นเป็นอาร์กิวเมนต์ไปยังฟังก์ชั่นอื่นเมื่อตัวชี้นี้ใช้เรียกฟังก์ชันที่ชี้ไปที่เราบอกว่านี่เป็นฟังก์ชันการโทรกลับ ฟังก์ชั่นการโทรกลับไม่ได้ถูกเรียกโดยตรงโดยผู้ดำเนินการของฟังก์ชั่น แต่ถูกเรียกโดยบุคคลอื่นเมื่อมีเหตุการณ์หรือเงื่อนไขเฉพาะเกิดขึ้นและใช้เพื่อตอบสนองต่อเหตุการณ์หรือเงื่อนไข
คำอธิบายนี้ดูซับซ้อนดังนั้นฉันจึงพบคำอธิบายที่ดีกว่าเกี่ยวกับ Zhihu
การคัดลอกรหัสมีดังนี้:
คุณไปที่ร้านเพื่อซื้อของและสิ่งที่คุณต้องการไม่ได้อยู่ในสต็อกดังนั้นคุณจึงทิ้งหมายเลขโทรศัพท์ไว้กับเสมียน หลังจากสองสามวันร้านค้ามีสินค้าและเสมียนจะโทรหาคุณจากนั้นคุณไปที่ร้านเพื่อรับสินค้าหลังจากที่คุณได้รับสาย ในตัวอย่างนี้หมายเลขโทรศัพท์ของคุณเรียกว่าฟังก์ชั่นการโทรกลับและคุณปล่อยโทรศัพท์ไปยังเสมียนซึ่งเรียกว่าฟังก์ชันการโทรกลับการลงทะเบียน ร้านค้าในภายหลังมีสต็อกซึ่งเรียกว่าเหตุการณ์ที่ก่อให้เกิดสมาคมโทรกลับ เสมียนเรียกคุณซึ่งเรียกว่าฟังก์ชั่นการโทรกลับและเมื่อคุณไปที่ร้านเพื่อรับสินค้าจะเรียกว่าเหตุการณ์การโทรกลับ คำตอบเสร็จสิ้น
ใน JavaScript:
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่น A ถูกส่งผ่านเป็นอาร์กิวเมนต์ (การอ้างอิงฟังก์ชั่น) ลงในฟังก์ชันอื่น B และฟังก์ชั่น B นี้เรียกใช้ฟังก์ชัน A. สมมติว่าฟังก์ชั่น A เรียกว่าฟังก์ชันการโทรกลับ หากไม่มีชื่อ (นิพจน์ฟังก์ชั่น) จะเรียกว่าฟังก์ชันการโทรกลับที่ไม่ระบุชื่อ
ในความเป็นจริงมันหมายถึงการผ่านฟังก์ชั่นเป็นพารามิเตอร์
javscript callback
โยนคำอธิบายที่ซับซ้อนทั้งหมดด้านบนลงในถังขยะสามารถ ~ และดูว่าการโทรกลับคืออะไร
การโทรกลับคืออะไร
ใน jQuery วิธีการซ่อนอาจเป็นเช่นนี้
การคัดลอกรหัสมีดังนี้:
$ (ตัวเลือก) .hide (ความเร็วการโทรกลับ)
เมื่อใช้งาน
การคัดลอกรหัสมีดังนี้:
$ ('#element') ซ่อน (1,000, function () {
// ฟังก์ชั่นการโทรกลับ
-
เราแค่ต้องเขียนฟังก์ชั่นง่าย ๆ ภายใน
การคัดลอกรหัสมีดังนี้:
$ ('#element') ซ่อน (1,000, function () {
console.log ('ซ่อน');
-
มีความคิดเห็นเล็ก ๆ น้อย ๆ ในเรื่องนี้: ฟังก์ชั่นการโทรกลับจะดำเนินการหลังจากภาพเคลื่อนไหวปัจจุบันเสร็จสมบูรณ์ 100% จากนั้นเราสามารถเห็นปรากฏการณ์ที่แท้จริง เมื่อองค์ประกอบที่มีองค์ประกอบ ID ถูกซ่อนไว้การซ่อนจะถูกส่งออกในคอนโซล
นั่นหมายความว่า:
การเรียกกลับเป็นจริงเมื่อมีการดำเนินการฟังก์ชั่นฟังก์ชั่นที่ดำเนินการในขณะนี้คือฟังก์ชั่นการโทรกลับที่เรียกว่า
ฟังก์ชั่นการโทรกลับ
ภายใต้สถานการณ์ปกติฟังก์ชั่นจะดำเนินการตามลำดับ แต่ JavaScript เป็นภาษาที่ขับเคลื่อนด้วยเหตุการณ์
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่นสวัสดี () {
console.log ('สวัสดี');
-
Function World () {
console.log ('โลก');
-
สวัสดี();
โลก();
ดังนั้นภายใต้สถานการณ์ปกติพวกเขาจะถูกดำเนินการตามลำดับ แต่เมื่อเหตุการณ์โลกถูกประหารชีวิตเป็นเวลานาน
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่นสวัสดี () {
settimeout (function () {
console.log ('สวัสดี');
}, 1,000);
-
Function World () {
console.log ('โลก');
-
สวัสดี();
โลก();
แล้วนี่ไม่ใช่กรณีในเวลานี้ ในเวลานี้โลกจะถูกส่งออกและสวัสดีจะเป็นเอาต์พุตดังนั้นเราจึงต้องโทรกลับ
อินสแตนซ์การโทรกลับ
ตัวอย่างง่ายๆคือดังนี้
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่น add_callback (p1, p2, callback) {
var my_number = p1 + p2;
การโทรกลับ (my_number);
-
add_callback (5, 15, ฟังก์ชั่น (num) {
console.log ("โทร" + num);
-
ในตัวอย่างเรามีฟังก์ชั่นของ add_callback ที่ได้รับสามพารามิเตอร์: สองตัวแรกเป็นสองพารามิเตอร์ที่จะเพิ่มและที่สามคือฟังก์ชันการโทรกลับ เมื่อฟังก์ชั่นถูกเรียกใช้งานผลลัพธ์การเพิ่มจะถูกส่งกลับและ 'การโทร 20' จะถูกส่งออกในคอนโซล