Menu
CoddyTech

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
challenge icon

التحدي

  1. أنشئ دالة مُنشئة باسم 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());
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس البرمجة كائنية التوجه

تدرّب بنفسك: مترجم JavaScript عبر الإنترنت