"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > جافا سكريبت + OOPs

جافا سكريبت + OOPs

تم النشر بتاريخ 2024-11-01
تصفح:435

JavaScript   OOPs

يمكن أن تساعدك OOP - أو البرمجة كائنية التوجه - على تنظيم التعليمات البرمجية الخاصة بك بطريقة أكثر منطقية وقابلة للإدارة، ويمكن أن تسهل إعادة استخدام التعليمات البرمجية الخاصة بك وتوسيعها في المستقبل.

في جافا سكريبت، البرمجة الموجهة للكائنات (OOP) هي نموذج برمجة يعتمد على مفهوم "الكائنات"، وهي عبارة عن مجموعات من البيانات والوظائف التي تعمل معًا لأداء مهام معينة.

في OOP، يتم إنشاء الكائنات من "الفئات"، وهي عبارة عن قوالب تحدد خصائص وأساليب الكائنات التي تقوم بإنشائها.

مزايا OOP

إحدى المزايا الرئيسية لاستخدام OOP في JavaScript هي أنه يسمح لك بتنظيم التعليمات البرمجية الخاصة بك بطريقة أكثر منطقية وسهولة في الإدارة. باستخدام OOP، يمكنك إنشاء فئات تمثل كائنات العالم الحقيقي وتحديد الخصائص والأساليب التي تمتلكها تلك الكائنات. وهذا يجعل من السهل فهم التعليمات البرمجية الخاصة بك والتعامل معها، خاصة مع تزايد تعقيدها.

من المزايا الأخرى لـ OOP في JavaScript أو البرمجة أنه يسمح بإعادة استخدام التعليمات البرمجية وقابلية التوسعة.

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

بالإضافة إلى ذلك، يمكنك إنشاء فئات جديدة ترث من الفئات الموجودة، مما يسمح لك بإعادة استخدام وتوسيع وظائف التعليمات البرمجية الموجودة.

البدء مع OOP
للبدء في استخدام OOP في JavaScript، عليك أولاً فهم مفهوم الفصل. في JavaScript، الفصل هو قالب يحدد خصائص وأساليب الكائنات التي يقوم بإنشائها. فيما يلي مثال لفئة بسيطة تمثل شخصًا:

class Person {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }
  greet() {
    console.log(`Hi, my name is ${this.name} and I am ${this.age} years old.`);
  }
}

في هذا المثال، تحتوي فئة الشخص على خاصيتين: الاسم والعمر. كما أن لديها طريقة واحدة، Greeting()، والتي تقوم بإخراج تحية إلى وحدة التحكم.

لإنشاء كائن من هذه الفئة، يمكنك استخدام الكلمة الأساسية الجديدة متبوعة باسم الفئة، مثل هذا:

const person1 = new Person("John", 25);
const person2 = new Person("Jane", 30);

بمجرد إنشاء كائن، يمكنك الوصول إلى خصائصه وأساليبه باستخدام التدوين النقطي، مثل هذا:

وراثة OOP في جافا سكريبت
بالإضافة إلى تعريف الفئات وإنشاء الكائنات، يسمح OOP في JavaScript أيضًا بالوراثة. هذا يعني أنه يمكنك إنشاء فئات جديدة ترث خصائص وأساليب الفئات الموجودة. على سبيل المثال، لنفترض أنك تريد إنشاء فصل دراسي للطالب يمثل طالبًا في المدرسة. يمكن لفئة الطالب أن ترث من فئة الشخص، مثل هذا:

class Student extends Person {
  constructor(name, age, school) {
    super(name, age);
    this.school = school;
  }
  info() {
    console.log(`${this.name} is ${this.age} years old and goes to ${this.school}.`);
  }
}

الركائز الأربع لـ OOPS
الركائز الأربع للبرمجة الشيئية (OOP) في JavaScript هي:

التغليف:
يشير التغليف إلى فكرة تغليف البيانات والوظائف معًا داخل الكائن. في OOP، الكائنات هي اللبنات الأساسية للتعليمات البرمجية الخاصة بك، ولكل كائن خصائصه وأساليبه الخاصة. يتيح لك ذلك تنظيم التعليمات البرمجية الخاصة بك بطريقة تجعل من السهل فهمها والعمل بها.

على سبيل المثال، يمكنك إنشاء فئة شخص تحتوي على خصائص مثل الاسم والعمر، وطرق مثل Greeting() وintroduction().

التجريد:

التجريد هو عملية إخفاء تفاصيل تنفيذ الكائن وكشف المعلومات الضرورية فقط للمستخدم. في OOP، يمكنك استخدام التجريد لجعل التعليمات البرمجية الخاصة بك أكثر نمطية ومرونة.

على سبيل المثال، يمكنك تحديد فئة مجردة توفر واجهة مشتركة لمجموعة من الكائنات ذات الصلة، دون تحديد كيفية تنفيذ تلك الكائنات.

الميراث:
الميراث هو عملية إنشاء فئات جديدة ترث خصائص وأساليب الفئات الموجودة. يتيح لك هذا إعادة استخدام التعليمات البرمجية الموجودة وتوسيع نطاقها، مما يمكن أن يوفر لك الوقت والجهد.

على سبيل المثال، إذا كان لديك فئة شخص تحدد الخصائص والأساليب الشائعة لشخص ما، فيمكنك إنشاء فئة طالب ترث من فئة الشخص وتضيف وظائف إضافية.

تعدد الأشكال:
تعدد الأشكال هو قدرة الكائنات المختلفة على الاستجابة لنفس استدعاء الأسلوب بطرق مختلفة. في OOP، يسمح لك تعدد الأشكال بإنشاء كائنات تشترك في واجهة مشتركة، ولكن لها تطبيقات مختلفة. وهذا يجعل التعليمات البرمجية الخاصة بك أكثر مرونة ويسمح لك بكتابة التعليمات البرمجية التي يمكن صيانتها وتوسيعها بسهولة أكبر.

على سبيل المثال، يمكنك إنشاء فئة شكل تحدد طريقة رسم () شائعة، ثم إنشاء فئات فرعية لأنواع مختلفة من الأشكال (مثل الدائرة والمستطيل وما إلى ذلك) التي يقوم كل منها بتنفيذ طريقة الرسم () بمفردها. طريق.

إليك مثال لكيفية استخدام هذه الركائز في OOP في برنامج JavaScript:

// Encapsulation: define a Person class with properties and methods
class Person {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }
  greet() {
    console.log(`Hi, my name is ${this.name} and I am ${this.age} years old.`);
  }
}

// Inheritance: define a Student class that inherits from the Person class
class Student extends Person {
  constructor(name, age, school) {
    super(name, age);
    this.school = school;
  }
  info() {
    console.log(`${this.name} is ${this.age} years old and goes to ${this.school}.`);
  }
}

// Abstraction: define an abstract Shape class with a common draw() method
abstract class Shape {
  abstract draw(): void;
}

// Polymorphism: define subclasses of Shape that implement the draw() method in their own way
class Circle extends Shape {
  draw() {
    console.log("Drawing a circle...");
  }
}
class Rectangle extends Shape {
  draw() {
    console.log("Drawing a rectangle...");
  }
}

الختام
تعد البرمجة الموجهة للكائنات مفهومًا أساسيًا في JavaScript ويمكنها تحسين بنية وتنظيم التعليمات البرمجية الخاصة بك بشكل كبير. من خلال فهم وتنفيذ مفاهيم مثل التغليف والميراث وتعدد الأشكال، يمكنك إنشاء برامج أكثر كفاءة وقابلة للصيانة.

سواء كنت مبتدئًا أو مطورًا ذا خبرة، فإن تخصيص الوقت لإتقان OOP في JavaScript سيؤتي ثماره على المدى الطويل. شكرا على القراءة، والبرمجة سعيدة.

بيان الافراج تم نشر هذه المقالة على: https://dev.to/adarshgupta101/javascript-oops-2elb?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3