انتقل إلى محتوى الدرس

Invoking Functions with call تحديد السياق بالدالة call

تحكم في سياق التنفيذ this عبر دالة call في JavaScript بتحديد الكائن المستقبِل وتمرير الوسائط مفردة واستعارة الدوال بين الكائنات وفهم سلوك الوضع الصارم.
3 صفوف تعليمية
جافا سكريبت
4,015 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

بما أن كل دالة في JavaScript هي كائن متكامل، فإنها تمتلك أسلوباً مدمجاً يُدعى .call(thisArg). يؤدي استدعاء fn.call(targetObj) إلى تشغيل الدالة fn في الحال مع توجيه الكلمة this بداخلها لتشير صراحةً إلى الكائن targetObj خلال هذه الاستدعاءة:

طريقة التشغيلالكائن الذي تشير إليه thisالمرونة مع الكائنات الأخرى
branchA.describe()تلقائياً الكائن branchA قبل النقطةتعمل فقط إذا كانت الدالة مخزنة داخل الكائن
describe.call(branchB)صراحةً الكائن branchB المرسل أولاًتعمل مع أي كائن يمتلك نفس أسماء خصائص البيانات
الصف 2 كود برمجي
JavaScript
function readBadge() {
  return this.city + ' Hub (#' + this.code + ')';
}
const hubA = { city: 'Riyadh', code: 101 };
const hubB = { city: 'Jeddah', code: 204 };
document.getElementById('call-out').textContent = readBadge.call(hubB);
الصف 3 ملاحظة هامة