شرح صفوف ومحتوى الفقرة
بما أن كل دالة في JavaScript هي كائن متكامل، فإنها تمتلك أسلوباً مدمجاً يُدعى .call(thisArg). يؤدي استدعاء fn.call(targetObj) إلى تشغيل الدالة fn في الحال مع توجيه الكلمة this بداخلها لتشير صراحةً إلى الكائن targetObj خلال هذه الاستدعاءة:
| طريقة التشغيل | الكائن الذي تشير إليه this | المرونة مع الكائنات الأخرى |
|---|---|---|
branchA.describe() | تلقائياً الكائن branchA قبل النقطة | تعمل فقط إذا كانت الدالة مخزنة داخل الكائن |
describe.call(branchB) | صراحةً الكائن branchB المرسل أولاً | تعمل مع أي كائن يمتلك نفس أسماء خصائص البيانات |
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);