JS Object Prototypes النموذج الأولي
JavaScript - النموذج الأولي (Prototype)
🔸 prototype هو كائن مرتبط بكل دالة بناء (constructor)، ويُستخدم لإضافة خصائص أو دوال تُشارك بين جميع الكائنات التي تم إنشاؤها بهذه الدالة. هذا الأسلوب يُوفر الذاكرة ويجعل الكود أكثر كفاءة.
---🔹 مثال توضيحي
function Person(name, age) {
this.name = name;
this.age = age;
}
Person.prototype.greet = function() {
return "مرحبًا " + this.name;
};
const p1 = new Person("Mahmoud", 41);
const p2 = new Person("Noor", 9);
console.log(p1.greet()); // مرحبًا Mahmoud
console.log(p2.greet()); // مرحبًا Noor
📌 تم تعريف الدالة greet
مرة واحدة في prototype، وجميع الكائنات تشترك فيها.
🔹 إضافة خصائص إلى prototype
Person.prototype.country = "Egypt";
console.log(p1.country); // Egypt
console.log(p2.country); // Egypt
📌 يمكن لكل كائن الوصول إلى الخاصية country
لأنها موجودة في النموذج الأولي.
🔹 تعديل القيمة داخل الكائن نفسه
p1.country = "Saudi Arabia";
console.log(p1.country); // Saudi Arabia ← تمت إضافة خاصية جديدة في الكائن نفسه
console.log(p2.country); // Egypt ← لا تزال من prototype
📌 إذا تم تعريف خاصية بنفس الاسم داخل الكائن، فهي تُغطي على النسخة من prototype.
---⚠️ ملاحظات مهمة
prototype
يسمح بمشاركة الوظائف بين الكائنات دون تكرار الكود.- مفيد في حالات الأداء عند إنشاء كائنات متعددة.
- يمكن الوصول إلى خصائص ودوال
prototype
من أي كائن تم إنشاؤه باستخدام نفس الدالة البانية.
تعليقات
إرسال تعليق