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

Calling Parent Constructor super استدعاء باني الأب بـ super

أتقن وراثة الأصناف في JavaScript عبر extends وsuper: هيئ باني الأب بأمان، وخصص الدوال الموروثة ووسعها، وتعرف على حدود الحقول الخاصة وتعدد الأشكال بـ instanceof.
3 صفوف تعليمية
جافا سكريبت
3,046 مشاهدة

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

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

متى عرّف الصنف الابن دالة constructor(...) خاصة به، وجب عليه استدعاء super(...) قبل أي قراءة أو كتابة على الكائن this. فالباني المشتق في JavaScript لا يحجز كائن النسخة الفارغ بنفسه، بل يفوض إنشاء النسخة وتهيئة حقول الأب إلى باني الصنف الأب عبر super(...).

أي محاولة لكتابة this.tier = tier قبل سطر super(owner) تطلق فوراً الخطأ الصريح ReferenceError.

الصف 2 كود برمجي
JavaScript
class Account {
  constructor(owner) { this.owner = owner; }
  badge() { return `User: ${this.owner}`; }
}
class ProAccount extends Account {
  constructor(owner, tier) { super(owner); this.tier = tier; }
}
const pro = new ProAccount('Nour', 'Gold');
document.getElementById('inh-out').textContent =
  `${pro.badge()} | Tier: ${pro.tier}`;
الصف 3 ملاحظة هامة