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 من أي كائن تم إنشاؤه باستخدام نفس الدالة البانية.

تعليقات

المشاركات الشائعة من هذه المدونة

C# - Arrays

Entity Framework - ما هو ORM؟ ونبذة عن Dapper وNHibernate

Entity Framework - مقدمة عن Entity Framework