يمكن ربط وظائف جافا سكريبت، والربط هو طريقة لتعديل عملية تنفيذ الوظيفة ديناميكيًا أو إرجاع النتائج، ويمكن لجافا سكريبت، باعتبارها لغة ديناميكية، أيضًا إجراء عمليات الربط، وعادة ما تستخدم للاستماع وطباعة المخرجات وما إلى ذلك المعلمات أو المتغيرات.
بيئة تشغيل هذا البرنامج التعليمي: نظام Windows 10، إصدار JavaScript 1.8.5، كمبيوتر Dell G3.
يستطيع.
الخطاف هو أسلوب يقوم بتعديل عملية التنفيذ ديناميكيًا أو إرجاع نتائج دالة، ويستخدم على نطاق واسع جدًا في التطبيقات العملية. باعتبارها لغة ديناميكية، يمكن لـ Javascript أيضًا إجراء عمليات ربط. مع تطور لغة جافا سكريبت، أصبح هناك المزيد والمزيد من أساليب الخطاف.
الترجمة الحرفية للخطاف تعني الخطاف في مجال الهندسة العكسية، وعادةً ما يتم استخدامه للاستماع وطباعة الإخراج والاستبدال وغيرها من العمليات لمعلمات ومتغيرات معينة.
الأمثلة هي كما يلي:
رمز العينة
وظيفة إضافة (أ، ب) {إرجاع أ + ب}رمز هوك
هذه وظيفة إضافة بسيطة جدًا، ويمكن الحصول على قيم هاتين المعلمتين من خلال الخطاف، وهو ما يعادل إضافة الكود console.log(a,b) قبل العودة، بحيث تكون قيم هذه يمكن إخراج اثنين للتحليل. ثم يمكنك استخدام الطريقة التالية لاستبدال الوظيفة، وهذه الطريقة هي وضع الديكور في JavaScript
Let _add = addadd = function () { console.log('arguments', الوسيطات) Let result = _add.apply(this, الوسيطات) console.log('result', result) إرجاع النتيجة // إذا لم تكن النتيجة مطلوبة، ثم قم بإرجاع _add()} مباشرةرمز كامل
وظيفة إضافة (أ، ب) {إرجاع أ + ب} Let _add = addadd = function () { console.log('الوسائط'، الحجج) Let result = _add.apply(this, الوسيطات) console.log('result' ، النتيجة) إرجاع النتيجة } إضافة (1، 2)سيؤدي استدعاء add(1,2) مرة أخرى إلى إخراج معلمات الوسائط والنتيجة 3. يتم تنفيذ ربط بسيط جدًا.
ومع ذلك، قد يكون هذا المثال بسيطًا جدًا، ما أريد التعبير عنه هو أنه من خلال الخطاف، يمكننا تحديد الوظيفة والمتغير الذي نريد ربطه، ومن خلال سلسلة من العمليات (نسخ الوظائف، البرمجة الوصفية)، طالما أن الوظيفة موجودة. عند تشغيله أو استخدامه (القيمة، التعديل)، يمكننا الحصول على النتائج التي نريدها (النتائج قبل وبعد التشفير (مثل ما قبل التشفير، وبعد التشفير)). هذا هو هدفنا.
المثال الوارد في الكتاب يهدف إلى توضيح أنك تريد إضافة بعض الوظائف إلى وظيفة أصلية معينة (مثل أضف هنا)، ولكن الوظيفة الأصلية قد تكون مكتوبة بواسطة مطورين آخرين، لذا فإن التعديل المباشر للوظيفة الأصلية نفسها قد يؤدي إلى خطأ غير معروف، لذا يمكنك استخدام الطريقة المذكورة أعلاه لنسخ الوظيفة الأصلية دون إتلاف الوظيفة الأصلية.