การโทรกลับหรือที่เรียกว่า "ฟังก์ชันการโทรกลับ" เป็นรูทีนย่อยในการเขียนโปรแกรมคอมพิวเตอร์ที่ใช้ในการอ้างอิงตัวควบคุมไปยังจุดก่อนหน้าในโปรแกรมที่กำลังทำงานอยู่ เป็นกระบวนการอะซิงโครนัสที่ใช้ในการแจ้งโปรแกรมเกี่ยวกับเหตุการณ์ที่เกิดขึ้นในส่วนอื่นของระบบ โดยทั่วไปแล้วการโทรกลับจะใช้ในระบบปฏิบัติการเพื่อส่งสัญญาณเหตุการณ์ที่ไม่สามารถกำหนดได้ เช่น การขัดจังหวะ การโทรกลับใช้เพื่อส่งต่อเหตุการณ์จากโปรแกรมหนึ่งไปยังอีกโปรแกรมหนึ่งในภาษาโปรแกรมเชิงวัตถุ เช่นเดียวกับการถ่ายโอนข้อมูลจากโปรแกรมหนึ่งไปยังอีกโปรแกรมหนึ่ง
ในภาษา C การโทรกลับทำได้โดยใช้พอยน์เตอร์ไปยังฟังก์ชัน ในภาษาอื่น ชื่อฟังก์ชันหรือวัตถุของผู้รับมอบสิทธิ์อาจถูกส่งผ่าน สภาพแวดล้อมรันไทม์ของบางภาษา เช่น JavaScript สามารถจัดการฟังก์ชันการโทรกลับได้โดยไม่ต้องเข้ารหัสตัวชี้ฟังก์ชันหรือผู้รับมอบสิทธิ์อย่างชัดเจน
การโทรกลับเป็นอาร์กิวเมนต์ที่ส่งผ่านไปยังฟังก์ชัน เมื่อฟังก์ชันเรียกกลับถูกเรียก อาร์กิวเมนต์ของฟังก์ชันเรียกจะถูกส่งผ่านเป็นอาร์กิวเมนต์ของฟังก์ชันเรียกกลับ ซึ่งช่วยให้สามารถใช้ฟังก์ชันเดียวกันเพื่อวัตถุประสงค์ที่แตกต่างกันได้ ขึ้นอยู่กับบริบทที่ใช้งาน ตัวอย่างเช่น อัลกอริธึมการเรียงลำดับเช่น Quicksort สามารถใช้ในการเรียงลำดับอาร์เรย์ของจำนวนเต็มหรือรายการสตริงที่เชื่อมโยง ขึ้นอยู่กับการเรียกกลับที่ส่งผ่าน
Callback ยังสามารถใช้เพื่อดำเนินการ callback chaining ซึ่งช่วยให้เรียกใช้ฟังก์ชันในลักษณะคล้ายลูกโซ่ได้ ด้วยวิธีนี้ ฟังก์ชันหนึ่งสามารถเรียกใช้ฟังก์ชันอื่นได้ และฟังก์ชันที่ถูกเรียกใช้สามารถเรียกใช้ฟังก์ชันที่สามเป็นต้นได้ ซึ่งช่วยให้สามารถรันโค้ดในหลายตำแหน่งได้ง่ายและมีประสิทธิภาพ
การใช้การเรียกกลับสามารถทำให้โค้ดอ่านได้ง่ายขึ้นโดยการแยกโค้ดออกเป็นบล็อกเชิงตรรกะ และปรับปรุงกระบวนการพัฒนาโปรแกรม นอกจากนี้ เนื่องจากฟังก์ชันการโทรกลับมักเขียนด้วยภาษาระดับสูง จึงสามารถใช้เพื่อช่วยบูรณาการภาษาการเขียนโปรแกรมต่างๆ ได้
การเขียนโปรแกรมโทรกลับเป็นคุณสมบัติที่ทรงพลังมากในการเขียนโปรแกรมคอมพิวเตอร์ ช่วยให้สามารถดำเนินการแบบอะซิงโครนัสซึ่งอาจส่งผลให้การทำงานของโปรแกรมเร็วขึ้น การโทรกลับถูกนำมาใช้ในแอปพลิเคชันทุกประเภท รวมถึงการพัฒนาเว็บ ระบบปฏิบัติการ ภาษา ฐานข้อมูล และอื่นๆ