في JavaScript ، يمكنك قراءة خاصية الكائن وكتابة من خلال مشغل DOT ". أو مشغل الدعامة "[]":
نسخة الكود كما يلي:
var o = {x: 1 ، y: 2} ؛
console.log (OX) ؛ // 1
console.log (o ["y"]) ؛ // 2
oy = 7 ؛
console.log (o ["y"]) ؛ // 7
تجدر الإشارة إلى أنه إذا تم استخدام مشغل الأقواس ، فيجب أن يكون نوع القيمة في المشغل سلسلة ، أو تعبير يمكن تحويله إلى سلسلة:
نسخة الكود كما يلي:
console.log (o [y]) ؛ // Referenceerror: Y غير محدد
var v = "y" ؛
console.log (o [v]) ؛ // 7
على عكس لغة Java ، يمكن إضافة أو حذف خصائص الكائنات في JavaScript بشكل ديناميكي. عند تعيين خاصية ، إذا لم يكن الخاصية غير موجودة ، فسوف يضيف JavaScript ديناميكيًا هذه الخاصية إلى الكائن:
نسخة الكود كما يلي:
oz = 99 ؛
console.log (o) ؛ // object {x = 1 ، y = 7 ، z = 99}
قراءة الممتلكات في سلسلة ميراث النموذج الأولي
تحتوي جميع الكائنات في JavaScript على كائن النموذج الأولي وخاصية وراثة من كائن النموذج الأولي ؛ لذلك ، تنقسم خصائص كائن في JS إلى فئتين:
1. الخاصية المملوكة للكائن نفسه ("خاصية خاصة").
2. خاصية موروثة من كائن النموذج الأولي.
عند قراءة خاصية كائن ما ، تكون القواعد المتبعة كما يلي:
1. ابحث عن الخاصية التي تحتاج إلى قراءتها من مجموعة الملكية الخاصة بالكائن ("خاصية خاصة") ؛ إذا كان يمكن البحث عنها ، فسيتم قراءة الخاصية مباشرة وإرجاع قيمتها.
2. إذا كان لا يمكن البحث في العقار من مجموعة الخصائص الخاصة بالكائن ("خاصية خاصة") ، فاستمر في البحث من سلسلة النموذج الأولي للكائن حتى يتم البحث في العقار وإعادة قيمته.
3. إذا كان لا يمكن البحث عن العقار في مجموعة الخصائص الخاصة بالكائن ("خاصية خاصة") ولا يمكن البحث عن الخاصية في جميع كائنات النموذج الأولي للكائن ، ثم يتم إرجاع غير محدد.
اكتب الممتلكات في سلسلة ميراث النموذج الأولي
عند الكتابة إلى خاصية كائن JavaScript ، تكون القواعد المتبعة كما يلي:
1. إذا كان للكائن نفسه الخاصية وكان الخاصية قابلة للكتابة ، فاكتب القيمة الجديدة إلى العقار. إذا كان العقار قراءة فقط ، يتم الإبلاغ عن خطأ.
2. إذا كان الكائن نفسه لا يحتوي على الخاصية ولم يكن موجودًا في جميع كائناته النموذجية ، فأضف هذه الخاصية إلى الكائن.
3. إذا كان الكائن نفسه لا يحتوي على الخاصية ، ولكن الخاصية موجودة في كائن النموذج الأولي وقابل للكتابة ، فسيقوم JS بإنشاء هذه الخاصية في الكائن ؛ أي أن الكائن يتجاوز الخاصية في كائن النموذج الأولي الخاص به. لا تزال قيمة الخاصية في كائن النموذج الأولي دون تغيير.
4. إذا كان الكائن نفسه لا يحتوي على الخاصية ، لكن الخاصية موجودة في كائن النموذج الأولي الخاص بها وقراءة فقط ، فسيتم الإبلاغ عن خطأ.
5. إذا لم يكن للكائن نفسه الخاصية ، ولكن طريقة Setter للخاصية موجودة في كائن النموذج الأولي الخاص بها ، فسيقوم JS باستدعاء طريقة Setter في كائن النموذج الأولي. تجدر الإشارة إلى أنه عند تشغيل طريقة Setter ، إذا تم تورط المهمة المتغيرة ، فإن عملية المهمة ستعمل على الكائن نفسه ، ولن يتم تغيير كائن النموذج الأولي. لهذا السلوك ، يمكن فهمه على النحو التالي: الكائن يرث وظيفة Setter من النموذج الأولي وتنفيذها.
من القواعد المذكورة أعلاه ، يمكننا أن نجد أنه إذا نجحت عملية المهمة إلى العقار ، فسيتم دائمًا تعديل الكائن نفسه في النهاية ، ولن يتم تغيير كائن النموذج الأولي الخاص به.