في JavaScript ، يمكن للمبرمجين تحديد وحدات التعليمات البرمجية بما في ذلك المتغيرات والوظائف. يمكن أن تتلقى وظائف JavaScript أيضًا معلمات ، مع استدعاء التعليمات البرمجية للدالة التي تمرر هذه المعلمات كمتغيرات أو قيم. من الممكن أيضًا تمرير مرجع إلى دالة أخرى كمعامل. عادة ما يتم استدعاء وظيفة رد الاتصال عندما تنتهي وظيفة أخرى من التنفيذ. لهذا السبب ، غالبًا ما تظهر وظائف رد الاتصال كمعلمات لوظائف أخرى.
تعريف رد الاتصال
لتنفيذ وظيفة رد الاتصال ، يجب أن تحدد شفرة JavaScript في الصفحة أولاً الوظيفة. يحدد نموذج الكود التالي دالة ويخزن مرجعًا متغيرًا لها: var callbackDefinition = function (numParam) {alert (numParam)؛ } ؛
تستخدم الوظيفة معلمة رقمية للتوضيح. يمكن أن تحتوي وظيفة رد الاتصال على أي كود JavaScript يمكن أن تتضمنه الوظيفة القياسية. سيتمكن الرمز الآن من تمرير مرجع إلى الوظيفة كمعامل إلى وظيفة أخرى ، باستخدام اسم المتغير.
معلمة رد الاتصال
بمجرد أن يكون للبرنامج النصي وظيفة محددة كمتغير ، يمكنه تمرير هذا المتغير كمعامل إلى وظيفة أخرى. يوضح نموذج التعليمات البرمجية التالي التقنية: mainFunction (10، callbackDefinition)؛
يستدعي هذا الرمز وظيفة مسماة ، ويمرر معلمة رقم واسم المتغير الذي يخزن رمز وظيفة رد الاتصال. يجب أن يتطابق مخطط الوظيفة التي يتم استدعاؤها هنا مع هاتين المعلمتين. ستتمكن الوظيفة التي تتلقى متغير رد الاتصال من استدعاء الوظيفة التي تخزنها.
تنفيذ الوظيفة
بمجرد تمريرها إلى الوظيفة الرئيسية ، يمكن تنفيذ وظيفة رد الاتصال. يوضح نموذج التعليمات البرمجية التالي: function mainFunction (myNum، callbackFn) {alert (myNum)؛ callbackFn (myNum * 2) ؛ }
للتوضيح ، يقوم هذا الرمز أولاً بإخراج تنبيه JavaScript والذي سيؤدي إلى ظهور مربع حوار في متصفح المستخدم. بمجرد تنفيذ هذا الرمز ، تستدعي الوظيفة وظيفة رد الاتصال باستخدام الاسم المحدد كمعامل. يتضمن استدعاء وظيفة رد الاتصال معلمة رقمية ، والتي يتم توقعها بواسطة الوظيفة التي تم تعريفها في البداية كمتغير.
استدعاء الوظيفة
بمجرد تحديد وظيفة للصفحة ، بما في ذلك رد الاتصال ، يمكنها تنفيذ هذا الرمز. في كثير من الأحيان ، يوجه المطورون المتصفح للاستماع إلى حدث المستخدم ، وتنفيذ الوظائف عند حدوث ذلك. على سبيل المثال ، تستدعي تعليمات HTML البرمجية التالية وظيفة: هنا قسم قابل للنقر
إذا كانت الوظيفة المحددة كمعامل تحتوي على تعريف متغير رد الاتصال واستدعاء الوظيفة الرئيسية ، فسيؤدي ذلك إلى إنشاء تأثير رد الاتصال ، على النحو التالي: الوظيفة doCallback () {var callFn = function (numParam) {alert (numParam)؛ } ؛ mainFunction (10 ، callFn) ؛ }
بمجرد أن تنفذ الوظيفة الرئيسية محتوى الكود الخاص بها ، فإنها تستدعي وظيفة رد الاتصال.