Constructor Functions
جزء من قسم البرمجة كائنية التوجه في رحلة JavaScript على Coddy. الدرس 4 من 56.
دوال المُنشئ هي دوال خاصة في JavaScript تتيح لك إنشاء عدة كائنات لها البنية والسلوك نفسيهما.
عرّف دالة مُنشئة لشخص:
function Person(name, age) {
this.name = name;
this.age = age;
this.greet = function() {
return "Hello, my name is " + this.name;
};
}أنشئ كائنًا جديدًا من نوع Person باستخدام المُنشئ:
const john = new Person("John", 30);
const tyler = new Person("Tyler", 35);استدعِ المُنشئ باستخدام الكلمة المفتاحية new. تنشئ new كائنًا فارغًا، وتشغّل الدالة مع توجيه this إلى ذلك الكائن، ثم تُعيد الكائن، لذا تخزّن this.name = name الاسم في john. تبدأ أسماء المُنشئات بحرف كبير (Person، Car) حسب الاصطلاح، للدلالة على أنه يُفترض استدعاؤها باستخدام new.
من دون new، يكون Person("John", 30) استدعاءً عاديًا لدالة: لا يُنشأ أي كائن، ويكون this هو الكائن العام (أو undefined في الوضع الصارم)، ويُعيد الاستدعاء undefined.
بعد تنفيذ الشيفرة أعلاه، يكون john كائنًا له الخصائص:
// يحتوي الكائن john على:
{
name: "John",
age: 30,
greet: function() { return "Hello, my name is John"; }
}يمكنك الوصول إلى الخصائص واستدعاء الأساليب:
console.log(john.name); // يطبع: John
console.log(john.greet()); // يطبع: Hello, my name is Johnالتحدي
- أنشئ دالة مُنشئة باسم
Bookتأخذ ثلاث وسيطات:
title(سلسلة نصية)author(سلسلة نصية)pages(عدد)
ينبغي للدالة تعيين هذه القيم كخصائص للكائن الذي تم إنشاؤه.
2. أضف طريقة باسم getSummary تُعيد سلسلة نصية تحتوي على بعض المعلومات عن الكتاب: this.title + " was written by " + this.author + " and has " + this.pages + " pages";
جرّب بنفسك
// TODO: أنشئ دالة بانية باسم Book تأخذ ثلاث وسائط (title, author, pages)
// TODO: عيّن هذه القيم كخصائص للكائن الذي أُنشئ
// TODO: أضف طريقة باسم getSummary تُرجع سلسلة نصية تحتوي على بعض المعلومات عن الكتاب.
// على سبيل المثال: Harry Potter was written by Rowling and has 500 pages
// لا تعدّل الكود أدناه
const inputTitle = inp[0]; // السطر الأول: عنوان الكتاب
const inputAuthor = inp[1]; // السطر الثاني: المؤلف
const inputPages = parseInt(inp[2]);// السطر الثالث: عدد الصفحات
const book = new Book(inputTitle, inputAuthor, inputPages);
console.log(book.getSummary());يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس البرمجة كائنية التوجه
1الكائنات والكلمة المفتاحية this
مراجعة سريعة: الكائناتإضافة Methods إلى الكائناتفهم الكلمة المفتاحية thisConstructor Functionsالكلمة المفتاحية newتحدي المراجعة7الوراثة والكلمة المفتاحية extends
الوراثةعلاقة "is-a"الكلمة المفتاحية extendsالدالة super()وراثة الخصائص والوظائفتحدي المراجعة2تنظيم الكود
ما هي الـ Modules؟التصدير باستخدام exportالاستيراد باستخدام importالـ Default مقابل الـ Named Exports8تنظيم كود OOP
تنظيم الـ Classes في Modules11مشروع: مصيّر الأشكال
إعداد: فئة Shape والتصديروراثة فئة Circleإعادة التعريف ودالة المساحةعداد الأشكال Staticتدرّب بنفسك: مترجم JavaScript عبر الإنترنت