JavaScript هي لغة ثابتة ولكنها أضافت فقط دعمًا للبرمجة الكلاسيكية الموجهة للكائنات (OOP) في ES6. إلى أن أضافت ميزات مثل إعلانات الفئات ، تعاملت JavaScript مع OOP باستخدام نموذج أقل شهرة قائم على النموذج الأولي. مع أي من الطريقتين ، يمكنك إنشاء تطبيقات معقدة تستخدم ميزات قائمة على الكائنات.

يبدو المُنشئ في JavaScript النموذجي مثل أي وظيفة أخرى. الاختلاف الرئيسي هو أنه يمكنك استخدام وظيفة المُنشئ هذه لإنشاء كائنات.

ما هو المنشئ في JavaScript؟

البناة هم واحد من المفاهيم الأساسية في البرمجة الشيئية. المُنشئ هو دالة يمكنك استخدامها لإنشاء مثيل لكائن. بالإضافة إلى إنشاء كائن جديد ، يحدد المُنشئ الخصائص والسلوكيات التي ستنتمي إليه.

بناء جملة المنشئ

وظيفةNameOfConstructor() {
this.property1 = "الملكية 1";
this.property2 = "الملكية 2";
this.property3 = "الملكية 3";
}

يمكنك إنشاء مُنشئ بامتداد وظيفة الكلمة الرئيسية لأنها أساسًا مثل أي وظيفة أخرى. ومع ذلك ، يلتزم المنشئون بالاتفاقيات التالية:

  1. لتمييزها عن الوظائف الأخرى ، استخدم اسمًا للمُنشئ يبدأ بحرف كبير.
  2. يستخدم المنشئون ملف هذا الكلمات الرئيسية بشكل مختلف. داخل المنشئ ، هذا يشير إلى الكائن الجديد الذي سينشئه المُنشئ.
  3. instagram viewer
  4. على عكس وظائف JavaScript ، تحدد المنشئات الخصائص والسلوكيات بدلاً من إرجاع القيم.

استخدام منشئ لإنشاء كائنات جديدة

في JavaScript ، يعد استخدام مُنشئ لإنشاء كائن مهمة سهلة. إليك مُنشئ بسيط مع استدعاء يتبعه:

وظيفةطالب() {
this.name = "جلوريا";
this.gender = "أنثى";
هذا.age = 19;
}

يترك طالبة = جديد طالب()؛

في هذا المثال، طالبة هو كائن تم إنشاؤه من طالب البناء. استخدم ال جديد الكلمة الأساسية لاستدعاء الوظيفة كمُنشئ. تخبر هذه الكلمة الأساسية JavaScript بإنشاء مثيل جديد لـ طالب. يجب ألا تستدعي هذه الوظيفة بدون جديد الكلمة الرئيسية لأن هذا داخل المنشئ لن يشير إلى كائن جديد. بعد البناء ، طالبة كل خصائص طالب. يمكنك الوصول إلى هذه الخصائص وتعديلها تمامًا كما تفعل مع أي كائن آخر.

أشياء مهمة يجب معرفتها حول منشئي JavaScript

قد يكون العمل مع المنشئين متعبًا للغاية ، وفي الوقت نفسه ، يمكن أن يكون مهمة سهلة. فيما يلي بعض الأشياء المهمة التي يجب على أي مطور معرفتها حول العمل مع المنشئين.

استخدام المنشئين مع الحجج

يمكنك تمديد مُنشئ لتلقي الوسائط. يعد هذا أمرًا مهمًا للغاية إذا كنت تتطلع إلى كتابة تعليمات برمجية سريعة الاستجابة ومرنة.

عندما تقوم بإنشاء كائن من مُنشئ ، سيرث الكائن جميع الخصائص المُعلنة في المُنشئ. على سبيل المثال ، ملف طالبة قمت بإنشائه أعلاه سيكون لها خصائص اسم, جنس، و عمر بقيم أولية ثابتة. بينما يمكنك تغيير كل خاصية يدويًا ، فسيكون هناك الكثير من العمل إذا كنت تكتب برنامجًا باستخدام العديد من الكائنات.

لحسن الحظ ، يمكن لمنشئي JavaScript قبول المعلمات ، مثل أي وظيفة أخرى. يمكنك تغيير طالب المُنشئ لقبول معاملين:

وظيفةطالب(اسم / الجنس) {
هذا.name = الاسم ؛
هذا.gender = الجنس ؛
هذا.age = 19;
}

جميع الكائنات التي تم إنشاؤها من أعلاه سيكون لها عمر ضبط ل 19. يمكنك تصميم المُنشئ الخاص بك بهذه الطريقة إذا كانت هناك خاصية تريد أن تحتوي عليها جميع الكائنات.

يمكنك الآن تحديد كائنات فريدة من نفس المُنشئ عن طريق تمرير وسيطات مختلفة.

الحجج تجعل المنشئين أكثر مرونة. إنهم يوفرون الوقت ويشجعون على الشفرة النظيفة.

تحديد طرق الكائن

الطريقة هي خاصية الكائن التي هي وظيفة. تعمل الأساليب على تحسين التعليمات البرمجية الخاصة بك في OOP لأنها تضيف سلوكيات مختلفة إلى كائناتك. هنا مثال:

وظيفةطالب(اسم / الجنس) {
هذا.name = الاسم ؛
هذا.gender = الجنس ؛
هذا.age = 19 ;

هذا.sayName = وظيفة () {
يعوداسمي $ {name}`;
}
}

ما سبق يضيف الوظيفة sayName للمنشئ.

لنفترض أنك تستخدم هذا المُنشئ لإنشاء كائن تقوم بتخزينه في متغير ، طالبة. يمكنك بعد ذلك استدعاء هذه الوظيفة بالرمز أدناه:

طالبة.sayName()

النموذج

في وقت سابق ، أنشأنا طالب بطريقة تجعل جميع مثيلاتها لها امتداد عمر الممتلكات بقيمة 19. سيؤدي هذا إلى وجود متغير مكرر لكل منها طالب المثال الذي تقوم بإنشائه.

لتجنب هذا التكرار ، يستخدم JavaScript مفهوم النماذج الأولية. تشترك جميع الكائنات التي تم إنشاؤها من مُنشئ في خصائص نموذجها الأولي. يمكنك إضافة ملف عمر ملكية ل طالب النموذج الأولي كما هو موضح أدناه:

Student.prototype.age = 19 ؛

من خلال القيام بذلك ، جميع حالات طالب سوف يكون عمر ملكية. إعلان خصائص النموذج الأولي هي طريقة لتقليل تكرار الكود في تطبيقك. يجعل الكود الخاص بك قياسيًا قدر الإمكان.

يمكن أن تكون خاصية النموذج الأولي كائنًا

يمكنك إضافة خصائص النموذج الأولي بشكل فردي كما هو موضح أعلاه. ولكن إذا كان لديك العديد من الخصائص لإضافتها ، فقد يكون هذا غير مريح.

كبديل ، يمكنك احتواء جميع الخصائص التي تحتاجها في كائن جديد. من خلال القيام بذلك ، ستقوم بتعيين جميع الخصائص مرة واحدة. على سبيل المثال:

Student.prototype = {
العمر: 19
سباق: "أبيض",
عجز: "لا أحد"
}

تذكر أن تضبط ملف البناء الخاصية عند تعيين النماذج الأولية لكائن جديد.

Student.prototype = { 
البناء: طالب،
العمر: 19
سباق: "أبيض",
عجز: "لا أحد"
}

يمكنك استخدام هذه الخاصية للتحقق من وظيفة المُنشئ التي أنشأت مثيلاً.

الطباع الخارقة والوراثة

ميراث هي طريقة يستخدمها المبرمجون لتقليل الأخطاء في تطبيقاتهم. إنها طريقة للالتزام بـ لا تكرر نفسك (جاف) مبدأ.

لنفترض أن لديك مُنشئان -طالب و مدرس—التي لها خاصيتان متشابهتان في النموذج الأولي.

Student.prototype = { 
البناء: طالب،

اسم القول: وظيفة () {
يعوداسمي $ {name}`;
}
}

Teacher.prototype = {
البناء: مدرس،

اسم القول: وظيفة () {
يعوداسمي $ {name}`;
}
}

كل من هذه المنشئات تحدد sayName طريقة مماثلة. لتجنب هذا التكرار غير الضروري ، يمكنك إنشاء ملف نوع فوقي.

وظيفةتفاصيل فردية(){};

IndividualDetails.prototype = {
البناء: IndividualDetails،

اسم القول: وظيفة () {
يعوداسمي $ {name}`;
}
};

يمكنك بعد ذلك إزالة ملفات sayName من كلا الصانعين.

لوراثة الخصائص من النوع الفائق ، استخدم Object.create (). يمكنك تعيين النموذج الأولي لكلا المُنشئين على مثيل من النوع الفائق. في هذه الحالة ، قمنا بتعيين طالب و مدرس النماذج الأولية إلى مثيل IndividualDetails.

هاهو:

Student.prototype = هدف.create (IndividualDetails.prototype) ؛
Teacher.prototype = هدف.create (IndividualDetails.prototype) ؛

من خلال القيام بهذا، طالب و مدرس ترث جميع خصائص النوع الفائق ، تفاصيل فردية.

هذه هي كيفية ممارسة DRY في OOP باستخدام الأنواع الفائقة.

البناة هم مغيرو قواعد اللعبة

يُعد المُنشئون مكونًا رئيسيًا في JavaScript ، ويُعد إتقان وظائفهم أمرًا بالغ الأهمية لتطوير تطبيقات OOP JavaScript. يمكنك استخدام مُنشئ لإنشاء كائنات تتشارك في الخصائص والأساليب. يمكنك أيضًا استخدام الوراثة لتحديد التسلسلات الهرمية للكائنات.

في ES6 ، يمكنك استخدام ملف فصل الكلمات الرئيسية لتحديد الفئات الكلاسيكية الموجهة للكائنات. يدعم هذا الإصدار من JavaScript أيضًا ملف البناء كلمة رئيسية.