الهدف: يمكن استخدام اسم سمة JS مع المتغيرات
على سبيل المثال: كائن كائن JS ، عند تعيين سمات للكائن ، يمكن استخدام الطريقة التالية
نسخة الكود كما يلي:
var كائن
Object.prop1 = "value1" ؛
object.prop2 = "value2" ؛
يمكن أيضًا استخدام الطريقة التالية:
نسخة الكود كما يلي:
Object.push ({prop1: "value1"}) ؛
Object.push ({prop2: "value2"}) ؛
هنا ، يمكن استخدام Prop1 كاسم السمة ، أو يمكن إضافة عروض الأسعار ، على سبيل المثال:
نسخة الكود كما يلي:
Object.push ({"<span style =" font-family: arial ، helvetica ، sans-serif ؛ "> prop1 </span>": "value1"}) ؛
معاني التعبيرات هي نفسها ، أي ، لا يمكن الاعتراف بـ Prop1 إلا على أنها ثابتة ، وحتى لو كان متغيرًا ، فهو غير مجدي ، على سبيل المثال:
نسخة الكود كما يلي:
var prop1 = "prop2" ؛
Object.push ({prop1: "<span style =" font-family: arial ، helvetica ، sans-serif ؛ "> value1 </span>"}) ؛
ماذا يحدث إذا قمت بالوصول إلى prop2 من خلال كائن مثل هذا؟ على سبيل المثال:
نسخة الكود كما يلي:
التنبيه (<span style = "font-family: arial ، helvetica ، sans-serif ؛"> object.prop2) </span>
وغني عن أن تسأل ، بالطبع أنها غير محددة ، ولكن الوصول إلى الكائن. prop1 هو "value1"
وقد تم ذكر السبب. بغض النظر عما إذا كانت علامات الاقتباس قد تمت إضافة أو لا ، يتم التعامل مع السمات على أنها ثوابت. اسمحوا لي أن أعطيك مثالا آخر:
نسخة الكود كما يلي:
var arr = [] ؛
arr ['js'] = 'jQuery' ؛
arr ['css'] = 'Oocss' ؛
var obj = {} ؛
لـ (var i in arr)
{
obj.i = arr [i] ؛
}
تنبيه (OBJ.JS) ؛
يتساءل القراء عن التنبيه الذي سوف يطبع؟
بالطبع كان غير محدد.
يرجى التفكير مرة أخرى ، ماذا سيتم طباعته إذا كان التنبيه (OBJ.I)؟
بالطبع هو OOCSS ، لماذا؟ نظرًا لأن OBJ لديه الآن سمة واحدة فقط ، ومن خلال حلقتين ، يتم كتابة مقدمة OBJ.I من الظهر.
إذا كان هناك شرط ، فأنت بحاجة إلى إضافة سمات ديناميكيًا ، أي ، يجب أن تكون السمة متغيرًا. كما هو الحال في رمز المثال أعلاه ، فإن ALERT (OBJ.JS) غير محدد ، ولكن jQuery. كيفية تعديله؟
نسخة الكود كما يلي:
var arr = [] ؛
arr ['js'] = 'jQuery' ؛
arr ['css'] = 'Oocss' ؛
var obj = {} ؛
لـ (var i in arr)
{
obj [i] = arr [i] ؛
}
تنبيه (OBJ.JS) ؛
هذا بسيط! تعامل مع OBJ OBJ كصفيف ، ويدعم استخدام أساليب مشابهة للاشتراكات لتعيين السمات وقيم السمة للكائنات. ومع ذلك ، فإن الكائن لا يزال كائنًا ، ولا يوجد طول OBJ.Length.