call () وتطبيق () في JavaScript

تعرف على كيفية استخدام call () وتطبيق () والاختلاف بينهما في JavaScript

call () و application () هما وظيفتان تقدمهما JavaScript لأداء مهمة محددة جدًا: استدعاء دالة وتعيينهاthisالقيمة.

تحقق من بلديدليل "هذا"لمعرفة كل التفاصيل حول هذا المتغير المحدد

يمكن للدالة استخدام الامتدادthisقيمة للعديد من حالات الاستخدام المختلفة. تكمن المشكلة في أنها تعطى من البيئة ولا يمكن تغييرها من الخارج ، إلا عند الاستخدامcall()أوapply().

عند استخدام هذه الطرق ، يمكنك تمرير كائن إضافي سيتم استخدامه كملفthisفي الوظيفة التي تم استدعاؤها.

تؤدي هذه الوظائف نفس الشيء ولكن لها فرق فيcall()يمكنك تمرير معلمات الوظيفة كقائمة من المعلمات مفصولة بفواصل ، مع أخذ العديد من المعلمات كما تريد ، أثناء وجودك فيapply()تمرر مصفوفة واحدة تحتوي على المعاملات

const car = {
  brand: 'Ford',
  model: 'Fiesta'
}

const drive = function(from, to, kms) { console.log(Driving for </span><span style="color:#e6db74">${</span><span style="color:#a6e22e">kms</span><span style="color:#e6db74">}</span><span style="color:#e6db74"> kilometers from </span><span style="color:#e6db74">${</span><span style="color:#a6e22e">from</span><span style="color:#e6db74">}</span><span style="color:#e6db74"> to </span><span style="color:#e6db74">${</span><span style="color:#a6e22e">to</span><span style="color:#e6db74">}</span><span style="color:#e6db74"> with my car, a </span><span style="color:#e6db74">${</span><span style="color:#66d9ef">this</span>.<span style="color:#a6e22e">brand</span><span style="color:#e6db74">}</span><span style="color:#e6db74"> </span><span style="color:#e6db74">${</span><span style="color:#66d9ef">this</span>.<span style="color:#a6e22e">model</span><span style="color:#e6db74">}</span><span style="color:#e6db74">) }

drive.call(car, ‘Milan’, ‘Rome’, 568) drive.apply(car, [‘Milan’, ‘Rome’, 568])

لاحظ أنه عند استخداموظائف السهم thisغير ملزم ، لذا فإن هذه الطريقة تعمل فقط مع الوظائف العادية


المزيد من دروس js: