جافا سكريبت تعتمد على الكائنات، ويمكن اعتبار أي عنصر كائنًا. ومع ذلك، فإن الأنواع والأشياء مختلفة. في هذا المقال، بالإضافة إلى مناقشة بعض خصائص الأنواع والكائنات، والأهم من ذلك، ندرس كيفية كتابة أنواع جيدة وقابلة لإعادة الاستخدام. بعد كل شيء، إذا كان من الممكن تغليف JavaScript، وهي لغة برمجة نصية شائعة، بشكل جيد وتشكيل مكتبة ضخمة، فسيكون ذلك مفيدًا جدًا لإعادة الاستخدام.
هناك العديد من المقالات حول النماذج الأولية على الإنترنت، لكنني لم أفهم الفكرة الأساسية مطلقًا. أخيرًا، بعد كتابة الكثير من أمثلة التعليمات البرمجية، أدركت: لا يمكن استخدام النموذج الأولي إلا على الأنواع.
فيما يلي بعض الأمثلة حول الأنواع والكائنات، بعد قراءة الأمثلة، قد يكون من الأسهل عليك فهم العلاقة بين الأنواع والكائنات:
رمز المثال | يوضح | |
1 | Object.prototype.Property = 1; Object.prototype.Method = function (){ تنبيه(1);}var obj = new Object();alert(obj.Property);obj.Method(); | يمكنك استخدام النماذج الأولية على الأنواع لإضافة سلوك إلى النوع. لا يمكن أن تظهر هذه السلوكيات إلا في حالات من هذا النوع. الأنواع المسموح بها في JS هي Array، Boolean، Date، Enumerator، Error، Function، Number، Object، RegExp، String |
2 | var obj = new Object(); obj.prototype.Property = 1;//Error//Errorobj.prototype.Method = function(){ تنبيه(1);} | لا يمكنك استخدام النموذج الأولي على مثيل، وإلا سيحدث خطأ في الترجمة. |
3 | Object.Property = 1;Object.Method = function(){ تنبيه(1);}alert(Object.Property);Object.Method(); | يمكنك تحديد الخصائص والأساليب "الثابتة" للنوع واستدعائها مباشرة على النوع. |
4 | Object.Property = 1;Object.Method = function(){ تنبيه(1);}var obj = new Object();alert(obj.Property);//Errorobj.Method();//خطأ | لا يمكن للمثيل استدعاء خصائص أو أساليب ثابتة من نوع ما، وإلا سيحدث خطأ غير محدد في الكائن. |
5 | function Aclass(){this.Property = 1;this.Method = function(){ تنبيه(1);}}var obj = new Aclass();alert(obj.Property);obj.Method(); | يوضح هذا المثال الطريقة المعتادة لتعريف النوع في JavaScript |
6 | function Aclass(){this.Property = 1;this.Method = function(){ تنبيه(1);}}Aclass.prototype.Property2 = 2;Aclass.prototype.Method2 = function{ تنبيه(2);}var obj = new Aclass();alert(obj.Property2);obj.Method2(); | يمكن استخدام النماذج الأولية خارجيًا لإضافة خصائص وأساليب إلى الأنواع المخصصة. |
7 | function Aclass(){this.Property = 1;this.Method = function(){ تنبيه(1);}}Aclass.prototype.Property = 2;Aclass.prototype.Method = function{ تنبيه(2);}var obj = new Aclass();alert(obj.Property);obj.Method(); | لا يمكن تغيير خصائص أو أساليب النوع المخصص خارجيًا من خلال النموذج الأولي. كما ترون من هذا المثال: الخصائص والأساليب التي تم استدعاؤها لا تزال هي نتائج التعريف الأولي. |
8 | function Aclass(){this.Property = 1;this.Method = function(){ تنبيه(1);}}var obj = new Aclass();obj.Property = 2;obj.Method = function(){ تنبيه( 2);}alert(obj.Property);obj.Method(); | يمكن تغيير الخصائص على الكائنات. (وهذا أمر مؤكد) يمكنك أيضًا تغيير الأساليب على الكائن. (يختلف عن المفهوم الشائع الموجه للكائنات) |
9 | function Aclass(){this.Property = 1;this.Method = function(){ تنبيه(1);}}var obj = new Aclass();obj.Property2 = 2;obj.Method2 = function(){ تنبيه( 2);}alert(obj.Property2);obj.Method2(); | يمكنك إضافة خصائص أو أساليب إلى الكائنات |
10 | function AClass(){ this.Property = 1; this.Method = function() { تنبيه (1 }} function AClass2(){ this.Property2 = 2 = function() { تنبيه (2)؛ }}AClass2.prototype = new AClass();var obj = new AClass2();alert(obj.Property);obj.Method();alert(obj.Property2);obj.Method2(); | يوضح هذا المثال كيف يرث نوع واحد من نوع آخر. |
11 | function AClass(){ this.Property = 1; this.Method = function() { تنبيه (1 }} function AClass2(){ this.Property2 = 2 = function() { تنبيه (2)؛ }}AClass2.prototype = new AClass();AClass2.prototype.Property = 3;AClass2.prototype.Method = function(){ تنبيه(4);}var obj = new AClass2();alert(obj.Property);obj.Method(); | يوضح هذا المثال كيف يمكن لفئة فرعية تجاوز خصائص أو أساليب فئة الأصل. |
・المثال 2: القيود المفروضة على استخدام النموذج الأولي
・المثال 3: كيفية تحديد الأعضاء الثابتين على النوع
・المثال 7: قيود النموذج الأولي على أعضاء الأنواع المعاد تعريفها
・مثال 10: كيفية جعل نوع ما يرث من نوع آخر
・المثال 11: كيفية إعادة تعريف أعضاء الفئة الأصلية في الفئة الفرعية
تتضمن الميزات الموجهة للكائنات التي يمكن لـ JavaScript تنفيذها ما يلي:
· المجال العام
· الطريقة العامة
· مجال خاص
・الطريقة الخاصة (حقل خاص)
・طريقة الزائد
・المنشئ
·حدث
・ الميراث الفردي
・تتجاوز الفئة الفرعية سمات أو أساليب الفئة الأصلية (تجاوز)
・الخصائص أو الأساليب الثابتة (عضو ثابت)