هناك مبدأ مشهور لإعادة استخدام التعليمات البرمجية ، والذي اقترحه GOF: يتم استخدام الأولوية لاستخدام مجموعات الكائنات بدلاً من ميراث الفصل. في JavaScript ، لا يوجد مفهوم للفئات ، لذلك لا يقتصر إعادة استخدام التعليمات البرمجية على ميراث الفصل. هناك العديد من الطرق لإنشاء كائنات في JavaScript ، بما في ذلك المنشآت ، يمكنك استخدام جديد لإنشاء كائنات ، ويمكنك تعديل الكائنات ديناميكيًا. هناك أيضًا العديد من الطرق لإعادة استخدام الميراث غير المصنف (الذي يمكن أن يسمى وضع الميراث الحديث) في JavaScript ، مثل الجمع بين الكائنات الأخرى في الكائنات المطلوبة ، وتكنولوجيا خلط الكائنات ، والاقتراض وإعادة استخدام الأساليب المطلوبة.
وضع الوراثة الكلاسيكية وضع الافتراض
أمثلة على اثنين من الوالدين والطفل:
نسخة الكود كما يلي:
وظيفة الوالد (الاسم) {
this.name = name || "Adam" ؛
}
parent.prototype.say = {
إرجاع هذا.
} ؛
وظيفة الطفل (الاسم) {
}
وراثة (طفل ، والد) ؛
فيما يلي طريقة تنفيذ لوظيفة الوراثة القابلة لإعادة الاستخدام ():
نسخة الكود كما يلي:
وظيفة الوراثة (c ، p) {
C.Prototype = جديد p () ؛
}
هنا يجب أن تشير خاصية النموذج الأولي إلى كائن ، وليس دالة ، لذلك يجب أن تشير إلى مثيل تم إنشاؤه بواسطة مُنشئ الأصل ، وليس إلى المنشئ نفسه.
بعد ذلك ، عند إنشاء كائن طفل ، ستحصل على وظائفه من مثيل الأصل من خلال النموذج الأولي:
نسخة الكود كما يلي:
var kid = New Child () ؛
kid.say () ؛ // "آدم"
استدعاء سلسلة النموذج الأولي الموروثة:
أضف خصائص الطفل:
نسخة الكود كما يلي:
var kid = New Child () ؛
Kid.Name = "Patrick" ؛
kid.say () ؛ // "باتريك"
التغييرات في سلسلة النموذج الأولي:
يمكنك العثور على الاسم الموجود في خصائص الكائن الخاصة بك ، لذلك لم يعد عليك البحث عن سلسلة النموذج الأولي.
أحد عيوب استخدام النمط أعلاه هو أنه يرث خصائص كائنين في نفس الوقت ، أي الخصائص المضافة إلى هذا وخصائص النموذج الأولي. معظم الوقت ، ليست هناك حاجة إلى سمات الذات هذه.
عيب آخر هو أن استخدام الوراثة () الوراثة () لا يدعم المعلمات النارية إلى البناء الفرعي ، على سبيل المثال:
نسخة الكود كما يلي:
var s = طفل جديد ("Seth") ؛
S.Say () ؛ // "آدم"
هذه النتيجة غير متوقع. على الرغم من أن مُنشئ الطفل يمكنه نقل المعلمات إلى مُنشئ الأصل ، إلا أنه يجب إعادة تنفيذ آلية الميراث هذه في كل مرة يلزم وجود كائن طفل ، وهو غير فعال لأن الكائن الأصل سيتم إعادة إنشاءه في النهاية.
هذه المقالة تنتهي هنا. سنستمر في تحديث الأوضاع المتبقية لوضع إعادة استخدام رمز JavaScript في المستقبل.