إنشاء النسخ
جزء من قسم Object Oriented Programming في رحلة JavaScript على Coddy — الدرس 12 من 56.
بعد تعريف فئة (class)، يمكنك إنشاء كائنات (objects) بناءً على تلك الفئة باستخدام الكلمة المفتاحية new. تُسمى هذه الكائنات مثيلات (instances).
لنفترض أن لدينا فئة Person بسيطة:
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
greet() {
return `Hello, my name is ${this.name}`;
}
}أنشئ مثيلاً من الفئة Person:
const john = new Person("John", 30);بعد تنفيذ الكود أعلاه، john هو مثيل من الفئة Person مع:
- خاصية
nameتم تعيينها إلى "John" - خاصية
ageتم تعيينها إلى 30
يمكنك الوصول إلى خصائص وطرق النسخة (instance):
console.log(john.name); // المخرجات: John
console.log(john.greet()); // المخرجات: Hello, my name is Johnيمكنك إنشاء مثيلات متعددة من نفس الفئة:
const sarah = new Person("Sarah", 25);
console.log(sarah.name); // المخرجات: Sarahالتحدي
لقد تم تزويدك بفئة Student. مهمتك هي إنشاء مثيلين للطالب في ملف driver.js:
- قم بإنشاء
student1بالاسم "Sarah" والدرجة 85 - قم بإنشاء
student2بالاسم "Mike" والدرجة 92
ورقة مرجعية
لإنشاء مثيل (instance) من فئة (class)، استخدم الكلمة المفتاحية new:
const john = new Person("John", 30);يمكنك الوصول إلى الخصائص والأساليب (methods) الخاصة بالمثيل باستخدام تدوين النقطة (dot notation):
console.log(john.name); // المخرجات: John
console.log(john.greet()); // المخرجات: Hello, my name is Johnيمكنك إنشاء مثيلات متعددة من نفس الفئة:
const sarah = new Person("Sarah", 25);
console.log(sarah.name); // المخرجات: Sarahجرّب بنفسك
import { Student } from './student.js';
// TODO: قم بإنشاء مثيل من فئة Student يسمى student1 باسم "Sarah" ودرجة 85
// TODO: قم بإنشاء مثيل من فئة Student يسمى student2 باسم "Mike" ودرجة 92
// كود الاختبار - لا تقم بالتعديل
console.log(student1.name); // يجب أن تكون النتيجة "Sarah"
console.log(student2.grade); // يجب أن تكون النتيجة 92يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Object Oriented Programming
1الكائنات والكلمة المفتاحية this
مراجعة سريعة: الكائناتإضافة Methods إلى الكائناتفهم الكلمة المفتاحية thisConstructor Functionsالكلمة المفتاحية newتحدي المراجعة7الوراثة والكلمة المفتاحية extends
الوراثةعلاقة "is-a"الكلمة المفتاحية extendsالدالة super()وراثة الخصائص والوظائفتحدي المراجعة2تنظيم الكود
ما هي الـ Modules؟التصدير باستخدام exportالاستيراد باستخدام importالـ Default مقابل الـ Named Exports8تنظيم كود OOP
تنظيم الـ Classes في Modules11مشروع: مصيّر الأشكال
إعداد: فئة Shape والتصديروراثة فئة Circle