اذهب إلى المحتوى

السؤال

نشر (معدل)

لدي صنفين، وأحدهما يرث من الآخر على النحو التالي:

class User {
  showAll() {
    // ...
  }
}

class Admin extends User {
  showAll() {
    // كيفية إستدعاء التابع showAll الموجود في الصنف User
  }
}

كما هو واضح في الكود السابق، يوجد صنف User ويحتوي على التابع الساكن showAll ، ولدي أيضًا الصنف Admin والذي يرث من الصنف User ويقوم بعمل override للتابع showAll.

الآن أريد أن يتم إستدعاء التابع showAll الموجود في الصنف User من داخل التابع showAll الموجود في الصنف Admin، كيف أقوم بذلك؟

تم التعديل في بواسطة Emad Saif

Recommended Posts

  • 1
نشر

يمكن القيام بهذا الأمر بطريقة سهلة من خلال الكلمة المفتاحية super والتي تُستخدم للإشارة إلى الصنف الأب Parent Class على النحو التالي:

class User {
  showAll() {
    console.log('showAll method from User class');
  }
}

class Admin extends User {
  showAll() {
    super.showAll();
    console.log('showAll method from Admin class');
  }
}

الآن يمكن عمل كائن من الصنف Admin وإستدعاء التابع showAll:

const admin = new Admin();
admin.showAll();
/*
Output:
showAll method from User class
showAll method from Admin class
*/

ملاحظة: إن كان التابع showAll الموجود في الصنف User عبارة عن تابع ساكن Static Method فيجب أن يتم إستدعائه عبر تابع ساكن أيضًا، على النحو التالي:

class User {
  static showAll() {
    console.log('showAll method from User class');
  }
}

class Admin extends User {
  static showAll() {
    super.showAll();
    console.log('showAll method from Admin class');
  }
}

Admin.showAll();
/*
Output:
showAll method from User class
showAll method from Admin class
*/

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...