जावास्क्रिप्ट ओओपी (प्रोटोटाइप) #2
Nov 27 2022
हाय दोस्तों, मैं बेनिसन हूं, इस ब्लॉग में, मैं यह समझाने जा रहा हूं कि ओओपी जावास्क्रिप्ट में कैसे काम करता है, और समझाता हूं कि यह क्लासिकल ओओपी से कैसे अलग है। इस लेख को पढ़ने से पहले, कृपया मेरा पिछला ब्लॉग पढ़ें जो OOP के मूलभूत सिद्धांतों के बारे में है।

हाय दोस्तों, मैं बेनिसन हूं, इस ब्लॉग में, मैं यह समझाने जा रहा हूं कि ओओपी जावास्क्रिप्ट में कैसे काम करता है, और समझाता हूं कि यह क्लासिकल ओओपी से कैसे अलग है। इस लेख को पढ़ने से पहले, कृपया मेरा पिछला ब्लॉग पढ़ें जो OOP के मूल सिद्धांतों के बारे में है ।
एक प्रोटोटाइप क्या है?
- जावास्क्रिप्ट में हमारे पास प्रोटोटाइप नामक कुछ है, जावास्क्रिप्ट में, प्रत्येक वस्तु एक निश्चित प्रोटोटाइप से जुड़ी होगी। इसलिए प्रत्येक वस्तु के प्रोटोटाइप होते हैं। प्रोटोटाइप में गुण और विधियाँ भी होती हैं।
- यहां महत्वपूर्ण बात यह है कि प्रोटोटाइप विधियों और गुणों को ऑब्जेक्ट द्वारा एक्सेस किया जा सकता है।
- क्लासिकल OOP में किसी ऑब्जेक्ट को क्लास से इंस्टैंट किया जाता है, जिसे इंस्टेंटेशन कहा जाता है। यहां क्लास ऑब्जेक्ट बनाने के लिए सिर्फ एक ब्लूप्रिंट है।
- लेकिन जावास्क्रिप्ट में, यह शब्दावली बिल्कुल अलग है। यहां प्रत्येक वस्तु अन्य वस्तुओं से जुड़ी होती है , और उन वस्तुओं को प्रोटोटाइप कहा जाता है ।

- प्रोटोटाइप इनहेरिटेंस का अर्थ है एक प्रोटोटाइप जिसमें विधियाँ और प्रोटोटाइप होते हैं जो उस प्रोटोटाइप से जुड़ी सभी वस्तुओं के लिए सुलभ होते हैं।
- तो वस्तु प्रोटोटाइप से विधियों और गुणों को प्राप्त करती है, इस प्रकार इसे प्रोटोटाइप वंशानुक्रम कहा जाता है। यह वंशानुक्रम वर्ग वंशानुक्रम से भिन्न है जो एक वर्ग को दूसरे वर्ग से विरासत में मिला है। लेकिन इस मामले में, बेस क्लास से विरासत में मिला उदाहरण।
- उपरोक्त छवि में, जावास्क्रिप्ट में OOP तीर ऊपर की ओर इशारा कर रहा है, इसका मतलब है कि वस्तु अपने व्यवहार को प्रोटोटाइप में दर्शाती है।
- शास्त्रीय ओओपी में, विधियों को कक्षा से उदाहरणों (वस्तुओं) में कॉपी किया जाता है।
const numbers = [1, 2, 3, 4,5];
numbers.map((num) => num * 2)


- कन्स्ट्रक्टर फ़ंक्शन का उपयोग फ़ंक्शंस से ऑब्जेक्ट बनाने के लिए किया जाता है। इस तरह बिल्ट-इन ऑब्जेक्ट्स जैसे ऐरे और मैप मेथड्स को लागू किया जाता है।
- यह कन्स्ट्रक्टर कार्यों का एक आधुनिक विकल्प है। ES6 क्लासेस कंस्ट्रक्टर फंक्शन की तरह ही काम करती हैं। ES6 क्लास क्लासिकल OOP की तरह व्यवहार नहीं करती है। पर्दे के पीछे, ES6 कक्षाएं कंस्ट्रक्टर फ़ंक्शन के साथ कार्यान्वित की जाती हैं।
class User {
constructor(firstName, lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
getFullName() {
console.log(this.firstName + ' ' + this.lastName);
}
}
const user = new User('Bennison', 'J');
console.log(user); // { firstName: 'Bennison', lastName: 'J' }
console.log(user.hasOwnProperty('firstName')); // true
console.log(user.hasOwnProperty('getFullName')); // false
- किसी ऑब्जेक्ट को प्रोटोटाइप ऑब्जेक्ट से जोड़ने के लिए "ऑब्जेक्ट.क्रिएट ()" विधि सबसे आसान तरीका है ।
const objOne = {
firstName: 'Bennison',
lastName: 'J',
getFullName: function () {
console.log(this.firstName + ' ' + this.lastName);
}
};
const objTwo = Object.create(objOne);
console.log(objTwo); // {}
objTwo.getFullName(); // Bennison J
- मुझे उम्मीद है, इस ब्लॉग में, हमने जावास्क्रिप्ट में प्रोटोटाइप इनहेरिटेंस की मूल बातें सीखी हैं, यदि आप उपरोक्त उदाहरणों को नहीं समझ पाए हैं, तो चिंता न करें, मैं अपने आने वाले ब्लॉगों में इन अवधारणाओं के बारे में अधिक समझाऊंगा। इस ब्लॉग को पढ़ने के लिए धन्यवाद, जल्द मिलते हैं।