في JS، لا يعد إنشاء كائن (إنشاء كائن) بمثابة إنشاء كائن فئة كما نقول كثيرًا، حيث يؤكد الكائن في JS على النوع المركب.
كائن JS هو نوع مركب يسمح لك بتخزينه والوصول إليه من خلال أسماء المتغيرات. وبعبارة أخرى، الكائن عبارة عن مجموعة غير مرتبة من الخصائص، ويتكون كل عنصر في المجموعة من اسم وقيمة. هل يبدو هذا غريبًا؟ مثل جدول HASH، أو القاموس، أو زوج المفاتيح/القيمة الذي نسمعه كثيرًا؟) وقد يكون نوع القيمة نوعًا مدمجًا (مثل رقم أو سلسلة) أو كائنًا.
1. محاط بزوج من الأقواس المتعرجة
انسخ رمز الكود كما يلي:
فار فارغObj = {};
فار myObj =
{
'id': 1, // أسماء السمات محاطة بعلامات اقتباس ويتم فصل السمات بفواصل
"الاسم": "اسمي"
};
//var m = new myObj(); //غير مدعوم
أتساءل عما إذا كنت قد لاحظت أنه تم الإعلان عن جميع الكائنات باستخدام var. مثل الكود أعلاه، فهو ببساطة يعلن عن كائن يحتوي على نسخة واحدة فقط. لا يمكنك استخدام العملية الجديدة عليه مثل إنشاء مثيل لكائن فئة مثل التعليقات البرمجية أعلاه قسم. وهذا يحد بشكل كبير من إعادة استخدام الكائنات ما لم يكن الكائن الذي تقوم بإنشائه يحتاج إلى نسخة واحدة فقط، ففكر في استخدام طرق أخرى لإنشاء الكائن.
دعونا نلقي نظرة على كيفية الوصول إلى خصائص وأساليب الكائن.
انسخ رمز الكود كما يلي:
فار myObj =
{
"المعرف": 1،
'متعة': وظيفة () {
document.writeln(this.id + '-' + this.name);// الوصول في وضع "object.property"
},
"الاسم": "myObj"،
'fun1': الوظيفة () {
document.writeln(this['id'] + '+' + this['name']);// الوصول في وضع المجموعة
}
};
myObj.fun();
myObj.fun1();
// نتيجة
// 1-myObj 1+myObj
2. استخدم الكلمة الأساسية الوظيفية لمحاكاة الفصل
استخدم هذا في الوظيفة للإشارة إلى الكائن الحالي، وإعلان الخصائص عن طريق تعيين قيم لها. إذا تم الإعلان عن متغير باستخدام var، فإن المتغير هو متغير محلي ولا يمكن استدعاؤه إلا في تعريف الفئة.
انسخ رمز الكود كما يلي:
وظيفة ماي كلاس () {
this.id = 5;
this.name = 'myclass';
this.getName = function() {
إرجاع هذا. الاسم؛
}
}
var my = new myClass();
تنبيه (my.id)؛
تنبيه (my.getName ())؛
// نتيجة
// 5
//myclass
3. قم بإنشاء كائن في نص الوظيفة، وأعلن عن خصائصه ثم قم بإعادته
لإنشاء كائن في نص الوظيفة، يمكنك استخدام الطريقة في النقطة الأولى، أو استخدام كائن جديد () أولاً ثم تعيين قيم لكل سمة.
ومع ذلك، لا تحتوي الكائنات التي تم إنشاؤها بهذه الطريقة على مطالبات ذكية في VS2008 المزود بحزمة الخدمة SP1.
انسخ رمز الكود كما يلي:
وظيفة ماي كلاس () {
فار obj =
{
"المعرف": 2،
"الاسم": "فئتي"
};
كائن الإرجاع؛
}
وظيفة _myClass() {
var obj = new Object();
obj.id = 1;
obj.name = '_myclass';
كائن الإرجاع؛
}
var my = new myClass();
var _my = new _myClass();
تنبيه (my.id)؛
تنبيه(my.name);
تنبيه (_my.id)؛
تنبيه(_my.name);
// نتيجة
// 2
//myclass
// 1
// _myclass