DEV Community

abuabdelrahman1413
abuabdelrahman1413

Posted on

📚 مفهوم البرمجة الشيئية في JavaScript: البروتوتايب والفئات 🚀

📚 مفهوم البرمجة الشيئية في JavaScript: البروتوتايب والفئات 🚀

كتير من الناس بيسألوا عن البرمجة الشيئية في JavaScript ويقولوا إنه JavaScript مش بتدعم OOP (البرمجة الشيئية) زي اللغات التانية. طيب، هل الكلام ده صحيح؟ خلونا نفهم الموضوع بشكل مبسط.

في JavaScript، إحنا بنستخدم نموذج البروتوتايب مش الفئات التقليدية اللي بنشوفها في لغات زي Java أو C++. يعني في JavaScript، الكائنات بتشتق من كائنات تانية مباشرةً. كل كائن في JavaScript ليه خاصية اسمها [[Prototype]] (أو __proto__) اللي بتخليه يرث الخصائص والطرق من كائن تاني.

ازاي يعني؟

تخيل إنه عندك كائن اسمه person:

let person = {
  name: "Alice",
  greet: function() {
    console.log("Hello, my name is " + this.name);
  }
};
Enter fullscreen mode Exit fullscreen mode

ممكن تبني كائن جديد اسمه student يشتق من person:

let student = Object.create(person);
student.name = "Bob";
student.greet(); // "Hello, my name is Bob"
Enter fullscreen mode Exit fullscreen mode

طيب، من وقت ES6 (الإصدار السادس من JavaScript) أضيفت الفئات (class) اللي خلت الموضوع أسهل وأوضح. لكن تحت الغطاء، الفئات دي بتستخدم نموذج البروتوتايب برضه. يعني ممكن تستخدم الفئات كده:

class Person {
  constructor(name) {
    this.name = name;
  }

  greet() {
    console.log("Hello, my name is " + this.name);
  }
}

let alice = new Person("Alice");
alice.greet(); // "Hello, my name is Alice"

class Student extends Person {
  // ممكن تضيف خصائص وطرق هنا
}

let bob = new Student("Bob");
bob.greet(); // "Hello, my name is Bob"
Enter fullscreen mode Exit fullscreen mode

خلاصة:

JavaScript بتدعم البرمجة الشيئية باستخدام نموذج البروتوتايب، والفئات اللي اتضافت في ES6 بتسهل الموضوع بس تحت الغطاء كله معتمد على البروتوتايب. يعني نقدر نقول إن JavaScript فيها مرونة كبيرة في التعامل مع الكائنات حتى لو بتختلف عن اللغات التانية.

أتمنى يكون الموضوع اتضح! 🌟 إذا عندكم أي أسئلة، أنا هنا عشان أساعد.

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more

Top comments (0)

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up