أولاً ، دعونا نلقي نظرة على الوراثة غير المسلحة الأولى: طريقة ميراث المثيل.
أنا لا أقول الكثير من الهراء. نظرًا لأنها ورثتها غير المسلسل ، يجب عدم استخدامها بشكل متكرر. نظرًا لأنه لا يتم استخدامه بشكل متكرر ولا يزال موجودًا ، فهناك عامل واحد فقط يتم استخدامه في مناسبات محددة. تُستخدم طريقة الميراث المثيل بشكل أساسي لميراث الكائنات الأساسية ، وهي أيضًا الطريقة الوحيدة لحل ميراث الأشياء الأساسية حتى الآن.
ميراث الكائنات الأساسية له قيمة معينة. على سبيل المثال ، كائن الخطأ. قد تضطر شركتنا إلى تنفيذ فئة خطأ لتبسيط التطوير المستقبلي. في هذا الوقت ، لا بد لي من استخدام طريقة ميراث المثيل لروث الخطأ.
الرمز كما يلي:
نسخة الكود كما يلي:
وظيفة تمديد (MES)
{
VARENTER = خطأ جديد (MES) ؛
مثيل. newerror = function () {
تنبيه ("خطأك هو"+mes) ؛
}
مثيل العودة ؛
}
حسنًا ، اختبره:
نسخة الكود كما يلي:
var e = new Extendingerror ("رقمك أقل من واحد") ؛
E.Newerror () ؛
التنبيه (e.toString ()) ؛
النتائج ترضينا:
حسنًا ، دون أن يقول الكثير من الهراء ، هذه طريقة وراثة غير مميزة ، والتي تستخدم بشكل أساسي فقط لميراث الأشياء الأساسية ، فقط تذكرها!
بعد ذلك ، دعونا نلقي نظرة على الميراث الثاني غير المتجول: طريقة الميراث نسخ.
كما يوحي الاسم ، فإن الميراث النسخ يعني ميراث الكائنات من خلال النسخ. ماذا علي أن أسس؟ من الواضح أن خصائص وطرق الكائن. هل ما زلت تتذكر أنه في JavaScript ، الفصل هو في الواقع علامة تجزئة؟ إذا كنت لا تستطيع أن تتذكر ، فابتعد عن الأساسيات. قد أكتب مقالًا عن كائنات JavaScript منذ فترة.
سيكون من الأسهل فهم هذا ، فقط انظر إلى الكود:
أولا اكتب طريقة تمديد:
نسخة الكود كما يلي:
function.prototype.extend = function () {
لـ (var pro في OBJ)
{
// هذه في الواقع نسخة كاملة من خصائص وطرق الفئة الأصل
this.prototype [pro] = obj [pro] ؛
}
}
حسنًا ، اكتب قطعة رمز لمعرفة كيفية استخدامه:
نسخة الكود كما يلي:
وظيفة الحيوان ()
{}
وظيفة الناس ()
{}
People.Extend (New Animal ())
{}
يمكن أن يرى الشخص المميز في لمحة أن عيوب هذه الطريقة واضحة للغاية:
عند نسخ طرق السمة لكائن واحد تلو الآخر ، يتم استخدام الانعكاس بالفعل. لن أقول الكثير عن الأضرار التي لحقت بكفاءة التفكير.
مثل ميراث النموذج الأولي ، يجب تهيئة الكائن الأصل. عندما يتم تحديد علاقة الميراث ، لكن المعلمات لا تزال غير مؤكدة ، لا يمكن لعبها!
باختصار ، لا يتم استخدام هذه الطريقة بشكل عام.
حسنًا ، دعنا نتحدث عن شيء شائع الاستخدام. ميراث مختلط!
ويستند هذا إلى طريقتين للميراث السائد. مقارنة بطريقتي الميراث ، يمكننا أن نجد أن مزايا وعيوب طريقتي الميراث مكملة ، لذلك من السهل خلطهما معًا!
نسخة الكود كما يلي:
وظيفة الناس (الاسم)
{
this.name = name ؛
this.sayname = function () {
تنبيه ("اسمي"+اسم) ؛
}
}
وظيفة الفتاة (الاسم ، العمر)
{
// الميراث البناء
this.father = الناس ؛
this.father (name) ؛
حذف هذا.
this.introduce = function () {
التنبيه ("اسمي"+name+". أنا"+العمر) ؛
}
}
// النموذج الأولي الميراث
Girl.Prototype = New People () ؛
حسنًا ، مزيج من الطريقتين ، الآن دعونا نرى ما إذا كانت المشكلة قد تم حلها؟
var g = فتاة جديدة ("Xuan" ، 22) ؛
تنبيه (g extremof من الناس) ؛
G.SayName () ؛
G.Introduce () ؛
اجتاز الاختبار!
هذا حل مثالي نسبيًا ، لكنه يزيد من تعقيد الكود ، وبالتالي يعتمد الحل المحدد على اختيار الجميع في الممارسة.
هذه هي كل الطرق للعب مع JavaScript. الجميع مرحب بهم لمواصلة متابعة مقالاتي الأخرى.