تصف هذه المقالة طرق تنفيذ الفصول والحالات في JavaScript. شاركه للرجوع إليه. التفاصيل كما يلي:
لا يوجد مفهوم لفئة الوالدين أو فئة الطفل أو فئة أو مثيل في JavaScript. كل هذا يتوقف على سلسلة النموذج الأولي لتحقيق الميراث. عند البحث عن خصائص كائن ما ، ستجتاز JavaScript سلسلة النموذج الأولي لأعلى حتى يتم العثور على الخصائص المقابلة. هناك العديد من الطرق التي يمكن أن تجعل JavaScript محاكاة مفاهيم الطبقة والمثال.
1. استخدم المُنشئ مباشرة لإنشاء كائن ، واستخدم هذا للإشارة إلى مثيل الكائن داخل المنشئ.
انسخ الرمز على النحو التالي: وظيفة animal () {
this.name = "Animal" ؛
}
animal.prototype.makesound = function () {
console.log ("صوت الحيوان") ؛
}
[وظيفة]
var animal1 = new Animal () ؛
Animal1.name ؛
"حيوان"
Animal1.makesound () ؛
صوت الحيوان
دعونا نلقي نظرة على مثال آخر:
انسخ الرمز كما يلي: نقطة الوظيفة (x ، y) {
this.x = x ؛
this.y = y ؛
}
point.prototype = {
method1: function () {console.log ("method1") ؛ } ،
method2: function () {console.log ("method2") ؛ } ،
}
{method1: [function] ، method2: [function]}
var point1 = نقطة جديدة (10 ، 20) ؛
point1.method1 () ؛
الطريقة 1
point1.method2 () ؛
الطريقة 2
على النحو الوارد أعلاه ، حدد أولاً سمة النموذج الأولي لكائن مُنشئ. بعد ذلك ، مثيل جديد للكائن ، يمكنك الاتصال بالطريقة المحددة في النموذج الأولي.
2. استخدم طريقة الكائن. create () لإنشاء كائن
انسخ الرمز كما يلي: var animal = {
الاسم: "حيوان" ،
Makeound: function () {console.log ("animal sound") ؛ } ،
}
var animal2 = object.create (Animal) ؛
Animal2.name ؛
"حيوان"
console.log (Animal2.Name) ؛
حيوان
Animal2.makesound () ؛
صوت الحيوان
هذه الطريقة أبسط من طريقة المنشئ ، لكنها لا تستطيع تنفيذ سمات خاصة وطرق خاصة ، ولا يمكن مشاركة البيانات بين كائنات المثيل ، وبالتالي فإن محاكاة الفصل لا تزال غير شاملة بما فيه الكفاية.
3. النهج الحد الأدنى الذي اقترحه المبرمج الهولندي غابور دي مويج. الاستخدام الموصى به.
انسخ الرمز كما يلي: var animal = {
init: function () {
var Animal = {} ؛
Animal.name = "Animal" ؛
Animal.makesound = function () {console.log ("animal sound") ؛ } ؛
إرجاع الحيوان
}
} ؛
var animal3 = animal.init () ؛
Animal3.name ؛
"حيوان"
Animal3.makesound () ؛
صوت الحيوان
دون استخدام النموذج الأولي وهذا ، تحتاج فقط إلى تخصيص مُنشئ init. التنفيذ الموروثة بسيط للغاية.
انسخ الرمز كما يلي: var cat = {
init: function () {
var cat = Animal.Init () ؛
cat.name2 = "cat" ؛
cat.makesound = function () {console.log ("cat sound") ؛ } ؛
cat.sleep = function () {console.log ("cat sleep") ؛ } ؛
إرجاع القط
}
}
var cat = cat.init () ؛
cat.name ؛ // 'حيوان'
cat.name2 ؛ // 'قطة'
Cat.Makesound () ؛ // على غرار التحميل الزائد للأسلوب
صوت القط
cat.sleep () ؛
قطة نوم
استخدام العقارات الخاصة والأساليب الخاصة:
انسخ الرمز كما يلي: var animal = {
init: function () {
var Animal = {} ؛
var sound = "صوت الحيوانات الخاص" ؛ // سمات خاصة
Animal.makesound = function () {console.log (sound) ؛ } ؛
إرجاع الحيوان
}
} ؛
var animal4 = animal.init () ؛
حيوان. // لا يمكن قراءة السمات الخاصة غير المحددة إلا من خلال أساليب الكائن الخاصة.
حيوان. // لا يمكن قراءة السمات الخاصة غير المحددة إلا من خلال طريقة الكائن الخاصة.
Animal4.makesound () ؛
صوت الحيوانات الخاص
طالما أن الخصائص والأساليب غير المحددة على الأشياء الحيوانية خاصة ، لا يمكن الوصول إليها من قبل العالم الخارجي.
يمكن تحقيق مشاركة البيانات بين الفصول والحالات.
انسخ الرمز كما يلي: var animal = {
الصوت: "صوت حيوان مشترك" ،
init: function () {
var Animal = {} ؛
Animal.CommonSound = function () {console.log (Animal.sound) ؛ } ؛
Animal.Changesound = function () {animal.sound = "تم تغيير صوت الحيوانات المشترك" ؛ } ؛
إرجاع الحيوان
}
}
var animal5 = animal.init () ؛
var animal6 = animal.init () ؛
حيوان. // يمكن اعتبارها سمة فئة
"صوت حيوان مشترك"
Animal5.sound ؛ // لا يمكن لكائن مثيل الوصول إلى سمات الفئة
غير محدد
Animal6.Sound ؛
غير محدد
Animal5.CommonSound () ؛
صوت الحيوانات المشترك
Animal6.CommonSound () ؛
صوت الحيوانات المشترك
Animal5.Changesound () ؛ // تعديل خصائص الفصل
غير محدد
حيوان.
"صوت حيوان مشترك"
Animal5.CommonSound () ؛
صوت الحيوانات المشترك
Animal6.CommonSound () ؛
صوت الحيوانات المشترك
على سبيل المثال ، Animal.Sound هو السمات المشتركة للفئات والحالات ، والتي يمكن اعتبارها سمات فئة وطرق الفصل.
إذا غيرت مثيل السمة المشتركة ، يتم أيضًا تعديل السمات الشائعة للفئة والحالات الأخرى وفقًا لذلك.
باختصار ، هو مفهوم واستخدام الطبقة والمثيرة المحاكاة في جافا سكريبت.
آمل أن تكون هذه المقالة مفيدة لبرمجة JavaScript للجميع.