"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > जावास्क्रिप्ट + OOPs

जावास्क्रिप्ट + OOPs

2024-11-01 को प्रकाशित
ब्राउज़ करें:705

JavaScript   OOPs

OOP - या ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग - आपके कोड को अधिक तार्किक और प्रबंधनीय तरीके से व्यवस्थित करने में आपकी सहायता कर सकता है, और यह भविष्य में आपके कोड का पुन: उपयोग और विस्तार करना आसान बना सकता है।

जावास्क्रिप्ट में, ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (ओओपी) एक प्रोग्रामिंग प्रतिमान है जो "ऑब्जेक्ट्स" की अवधारणा पर आधारित है, जो डेटा और फ़ंक्शंस का संग्रह है जो कुछ कार्यों को करने के लिए मिलकर काम करते हैं।

ओओपी में, ऑब्जेक्ट "वर्गों" से बनाए जाते हैं, जो टेम्पलेट होते हैं जो उनके द्वारा बनाए गए ऑब्जेक्ट के गुणों और तरीकों को परिभाषित करते हैं।

ओओपी के लाभ

जावास्क्रिप्ट में ओओपी का उपयोग करने का एक प्रमुख लाभ यह है कि यह आपको अपने कोड को अधिक तार्किक और प्रबंधनीय तरीके से व्यवस्थित करने की अनुमति देता है। ओओपी के साथ, आप ऐसी कक्षाएं बना सकते हैं जो वास्तविक दुनिया की वस्तुओं का प्रतिनिधित्व करती हैं और उन वस्तुओं के गुणों और विधियों को परिभाषित करती हैं। इससे आपके कोड को समझना और उसके साथ काम करना आसान हो जाता है, खासकर जब इसकी जटिलता बढ़ती है।

जावास्क्रिप्ट या प्रोग्रामिंग में ओओपी का एक अन्य लाभ यह है कि यह कोड के पुन: उपयोग और विस्तारशीलता की अनुमति देता है।

एक बार जब आप एक क्लास को परिभाषित कर लेते हैं, तो आप उस क्लास से जितनी चाहें उतनी ऑब्जेक्ट बना सकते हैं। इससे आपका काफी समय और प्रयास बच सकता है क्योंकि आपको प्रत्येक ऑब्जेक्ट के लिए एक ही कोड बार-बार लिखने की ज़रूरत नहीं है।

इसके अतिरिक्त, आप नई कक्षाएं बना सकते हैं जो मौजूदा कक्षाओं से विरासत में मिलती हैं, जो आपको मौजूदा कोड की कार्यक्षमता का पुन: उपयोग और विस्तार करने की अनुमति देती है।

ओओपी के साथ शुरुआत करना
जावास्क्रिप्ट में OOP के साथ शुरुआत करने के लिए, आपको सबसे पहले एक क्लास की अवधारणा को समझना होगा। जावास्क्रिप्ट में, एक क्लास एक टेम्प्लेट है जो उसके द्वारा बनाई गई वस्तुओं के गुणों और तरीकों को परिभाषित करता है। यहां एक साधारण वर्ग का उदाहरण दिया गया है जो एक व्यक्ति का प्रतिनिधित्व करता है:

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.`);
  }
}

इस उदाहरण में, व्यक्ति वर्ग में दो गुण हैं: नाम और आयु। इसमें एक विधि भी है, greet(), जो कंसोल पर ग्रीटिंग आउटपुट करता है।

इस क्लास से एक ऑब्जेक्ट बनाने के लिए, आप क्लास के नाम के बाद नए कीवर्ड का उपयोग करें, जैसे:

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

एक बार जब आप एक ऑब्जेक्ट बना लेते हैं, तो आप डॉट नोटेशन का उपयोग करके इसके गुणों और विधियों तक पहुंच सकते हैं, जैसे:

जावास्क्रिप्ट में OOP वंशानुक्रम
कक्षाओं को परिभाषित करने और ऑब्जेक्ट बनाने के अलावा, जावास्क्रिप्ट में OOP वंशानुक्रम की भी अनुमति देता है। इसका मतलब है कि आप नई कक्षाएं बना सकते हैं जो मौजूदा कक्षाओं के गुणों और विधियों को प्राप्त करती हैं। उदाहरण के लिए, मान लें कि आप एक छात्र वर्ग बनाना चाहते हैं जो किसी स्कूल के छात्र का प्रतिनिधित्व करता है। विद्यार्थी वर्ग व्यक्ति वर्ग से इस प्रकार विरासत में प्राप्त कर सकता है:

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}.`);
  }
}

ओओपीएस के चार स्तंभ
जावास्क्रिप्ट में ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (ओओपी) के चार स्तंभ हैं:

एनकैप्सुलेशन:
एनकैप्सुलेशन किसी ऑब्जेक्ट के अंदर डेटा और कार्यक्षमता को एक साथ लपेटने के विचार को संदर्भित करता है। OOP में, ऑब्जेक्ट आपके कोड के मूल बिल्डिंग ब्लॉक होते हैं, और प्रत्येक ऑब्जेक्ट की अपनी गुण और विधियाँ होती हैं। यह आपको अपने कोड को इस तरह से व्यवस्थित करने की अनुमति देता है जिससे इसे समझना और इसके साथ काम करना आसान हो जाता है।

उदाहरण के लिए, आप एक व्यक्ति वर्ग बना सकते हैं जिसमें नाम और उम्र जैसे गुण हों, और अभिवादन() और परिचय() जैसी विधियां हों।

अमूर्त:

एब्स्ट्रैक्शन किसी वस्तु के कार्यान्वयन के विवरण को छिपाने और उपयोगकर्ता के लिए केवल आवश्यक जानकारी को उजागर करने की प्रक्रिया है। OOP में, आप अपने कोड को अधिक मॉड्यूलर और लचीला बनाने के लिए एब्स्ट्रैक्शन का उपयोग कर सकते हैं।

उदाहरण के लिए, आप एक अमूर्त वर्ग को परिभाषित कर सकते हैं जो संबंधित वस्तुओं के समूह के लिए एक सामान्य इंटरफ़ेस प्रदान करता है, यह निर्दिष्ट किए बिना कि उन वस्तुओं को कैसे कार्यान्वित किया जाता है।

विरासत:
वंशानुक्रम नए वर्ग बनाने की प्रक्रिया है जो मौजूदा वर्गों के गुणों और विधियों को प्राप्त करते हैं। यह आपको मौजूदा कोड का पुन: उपयोग और विस्तार करने की अनुमति देता है, जिससे आपका समय और प्रयास बच सकता है।

उदाहरण के लिए, यदि आपके पास एक व्यक्ति वर्ग है जो किसी व्यक्ति के लिए सामान्य गुणों और विधियों को परिभाषित करता है, तो आप एक छात्र वर्ग बना सकते हैं जो व्यक्ति वर्ग से विरासत में मिलता है और अतिरिक्त कार्यक्षमता जोड़ता है।

बहुरूपता:
बहुरूपता विभिन्न वस्तुओं की एक ही विधि कॉल पर अलग-अलग तरीकों से प्रतिक्रिया करने की क्षमता है। ओओपी में, बहुरूपता आपको ऐसी वस्तुएं बनाने की अनुमति देती है जो एक सामान्य इंटरफ़ेस साझा करती हैं, लेकिन उनके कार्यान्वयन अलग-अलग होते हैं। यह आपके कोड को अधिक लचीला बनाता है और आपको ऐसा कोड लिखने की अनुमति देता है जो अधिक आसानी से बनाए रखने योग्य और विस्तार योग्य है।

उदाहरण के लिए, आप एक आकार वर्ग बना सकते हैं जो एक सामान्य ड्रा() विधि को परिभाषित करता है, और फिर विभिन्न प्रकार के आकार (उदाहरण के लिए सर्कल, आयताकार इत्यादि) के लिए उपवर्ग बना सकते हैं जो प्रत्येक ड्रा() विधि को अपने आप में लागू करते हैं रास्ता।

यहां एक उदाहरण दिया गया है कि ओओपी के इन स्तंभों का उपयोग जावास्क्रिप्ट प्रोग्राम में कैसे किया जा सकता है:

// 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...");
  }
}

ऊपर लपेटकर
ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग जावास्क्रिप्ट में एक मौलिक अवधारणा है और यह आपके कोड की संरचना और संगठन में काफी सुधार कर सकती है। इनकैप्सुलेशन, इनहेरिटेंस और पॉलीमोर्फिज्म जैसी अवधारणाओं को समझकर और लागू करके, आप अधिक कुशल और रखरखाव योग्य प्रोग्राम बना सकते हैं।

चाहे आप शुरुआती हों या अनुभवी डेवलपर, जावास्क्रिप्ट में ओओपी में महारत हासिल करने के लिए समय निकालने से लंबे समय में लाभ मिलेगा। पढ़ने के लिए धन्यवाद, और खुश कोडिंग।

विज्ञप्ति वक्तव्य यह लेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/adarshगुप्त101/javascript-oops-2elb?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] पर संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3