وظائف رد نداء JavaScript - ما هي عمليات الاسترجاعات في JS وكيفية استخدامها

إذا كنت معتادًا على البرمجة ، فأنت تعرف بالفعل ما هي الوظائف وكيفية استخدامها. ولكن ما هي وظيفة رد الاتصال؟ تعد وظائف رد الاتصال جزءًا مهمًا من JavaScript وبمجرد فهمك لكيفية عمل عمليات الاسترجاعات ، ستصبح أفضل في JavaScript.

لذا في هذا المنشور ، أود مساعدتك على فهم وظائف رد الاتصال وكيفية استخدامها في JavaScript من خلال استعراض بعض الأمثلة.

ما هي وظيفة رد الاتصال؟

في JavaScript ، الوظائف هي كائنات. هل يمكننا تمرير الأشياء إلى وظائف كمعلمات؟ نعم.

لذلك ، يمكننا أيضًا تمرير الوظائف كمعلمات إلى وظائف أخرى واستدعائها داخل الوظائف الخارجية. تبدو معقدة؟ دعني أوضح ذلك في مثال أدناه:

function print(callback) { callback(); }

تأخذ وظيفة print () وظيفة أخرى كمعامل وتستدعيها بالداخل. هذا صالح في JavaScript ونطلق عليه "رد الاتصال". لذا فإن الوظيفة التي يتم تمريرها إلى وظيفة أخرى كمعامل هي وظيفة رد الاتصال. لكن هذا ليس كل شيء.

يمكنك أيضًا مشاهدة إصدار الفيديو الخاص بوظائف رد الاتصال أدناه:

لماذا نحتاج وظائف رد الاتصال؟

يقوم JavaScript بتشغيل التعليمات البرمجية بالتتابع بترتيب من أعلى إلى أسفل. ومع ذلك ، هناك بعض الحالات التي يتم فيها تشغيل الكود (أو يجب تشغيله) بعد حدوث شيء آخر وليس بشكل تسلسلي. وهذا ما يسمى بالبرمجة غير المتزامنة.

تتأكد عمليات الاستدعاء من أن الوظيفة لن تعمل قبل اكتمال المهمة ولكنها ستعمل مباشرة بعد اكتمال المهمة. يساعدنا في تطوير كود JavaScript غير متزامن ويبقينا في مأمن من المشاكل والأخطاء.

في JavaScript ، تتمثل طريقة إنشاء وظيفة رد الاتصال في تمريرها كمعامل إلى وظيفة أخرى ، ثم استدعائها مباشرة بعد حدوث شيء ما أو اكتمال بعض المهام. لنرى كيف ...

كيفية إنشاء رد اتصال

لفهم ما شرحته أعلاه ، دعني أبدأ بمثال بسيط. نريد تسجيل رسالة إلى وحدة التحكم ولكن يجب أن تكون هناك بعد 3 ثوانٍ.

const message = function() { console.log("This message is shown after 3 seconds"); } setTimeout(message, 3000);

هناك طريقة مضمنة في JavaScript تسمى "setTimeout" ، والتي تستدعي دالة أو تقيِّم تعبيرًا بعد فترة زمنية معينة (بالمللي ثانية). هنا ، يتم استدعاء وظيفة "message" بعد مرور 3 ثوانٍ. (ثانية واحدة = 1000 مللي ثانية)

بمعنى آخر ، يتم استدعاء وظيفة الرسالة بعد حدوث شيء ما (بعد مرور 3 ثوانٍ على هذا المثال) ، ولكن ليس قبل ذلك. لذا فإن وظيفة الرسالة هي مثال على وظيفة رد الاتصال.

ما هي الوظيفة المجهولة؟

بدلاً من ذلك ، يمكننا تحديد وظيفة مباشرة داخل دالة أخرى ، بدلاً من استدعاءها. سيبدو مثل هذا:

setTimeout(function() { console.log("This message is shown after 3 seconds"); }, 3000);

كما نرى ، لا تحتوي وظيفة رد الاتصال هنا على اسم ، كما يُطلق على تعريف الوظيفة بدون اسم في JavaScript "وظيفة مجهولة". هذا بالضبط نفس المهمة مثل المثال أعلاه.

رد الاتصال كوظيفة سهم

إذا كنت تفضل ذلك ، يمكنك أيضًا كتابة نفس وظيفة رد الاتصال مثل وظيفة سهم ES6 ، وهي نوع جديد من الوظائف في JavaScript:

setTimeout(() => { console.log("This message is shown after 3 seconds"); }, 3000);

ماذا عن الأحداث؟

JavaScript هي لغة برمجة تعتمد على الأحداث. نستخدم أيضًا وظائف رد الاتصال لإعلانات الأحداث. على سبيل المثال ، لنفترض أننا نريد أن ينقر المستخدمون على زر:

Click here

هذه المرة سنرى رسالة على وحدة التحكم فقط عندما ينقر المستخدم على الزر:

document.queryselector("#callback-btn") .addEventListener("click", function() { console.log("User has clicked on the button!"); });

لذلك نختار الزر أولاً بمعرفه ، ثم نضيف مستمع حدث باستخدام طريقة addEventListener. يستغرق 2 معلمات. الأول هو نوعه ، "click" ، والمعامل الثاني هو وظيفة رد الاتصال ، والتي تسجل الرسالة عند النقر على الزر.

كما ترى ، تُستخدم وظائف رد الاتصال أيضًا لإعلانات الأحداث في JavaScript.

يتم إحتوائه

تُستخدم عمليات الاسترجاعات غالبًا في JavaScript ، وآمل أن يساعدك هذا المنشور في فهم ما يفعلونه بالفعل وكيفية التعامل معهم بشكل أسهل. بعد ذلك ، يمكنك التعرف على وعود JavaScript وهو موضوع مشابه شرحته في رسالتي الجديدة.

إذا كنت تريد معرفة المزيد عن تطوير الويب ، فلا تتردد في متابعتي على Youtube !

شكرا لقرائتك!