Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> JavaScript

JavaScript में प्रोटोटाइप मेथड से कंस्ट्रक्टर फंक्शन के वेरिएबल्स कैसे एक्सेस करें?

JavaScript में prototype पर मेथड जोड़कर सभी इंस्टेंसेस के लिए शेयर्ड व्यवहार बनाएं। this कीवर्ड से इंस्टेंस वेरिएबल्स एक्सेस करें।

बुनियादी उदाहरण

function Customer(fullName) {
    this.fullName = fullName;  // इंस्टेंस प्रॉपर्टी
}

// प्रोटोटाइप पर मेथड जोड़ें (सभी इंस्टेंसेस शेयर करते हैं)
Customer.prototype.setFullName = function(newFullName) {
    this.fullName = newFullName;  // this = वर्तमान इंस्टेंस
};

Customer.prototype.getFullName = function() {
    return this.fullName;
};

// उपयोग
const customer = new Customer("John Smith");
console.log("सिंपल मेथड:", customer.fullName);        // "John Smith"
console.log("प्रोटोटाइप मेथड:", customer.getFullName()); // "John Smith"

customer.setFullName("David Miller");
console.log("बदलने के बाद:", customer.getFullName()); // "David Miller"

प्रोटोटाइप चेन समझें

console.log(customer.__proto__ === Customer.prototype); // true
console.log(Customer.prototype.constructor === Customer); // true

// प्रोटोटाइप पर प्रॉपर्टी (शेयर्ड)
Customer.prototype.company = "TechCorp";

const c1 = new Customer("A");
const c2 = new Customer("B");
console.log(c1.company); // "TechCorp"
console.log(c2.company); // "TechCorp"

c1.company = "Startup";  // इंस्टेंस पर नई प्रॉपर्टी बनाता है (शैडोइंग)
console.log(c1.company); // "Startup"
console.log(c2.company); // "TechCorp" (प्रोटोटाइप से)

ES6 क्लास सिंटैक्स (समान व्यवहार)

class Customer {
    constructor(fullName) {
        this.fullName = fullName;
    }
    
    // यह मेथड प्रोटोटाइप पर जाता है
    setFullName(newFullName) {
        this.fullName = newFullName;
    }
    
    getFullName() {
        return this.fullName;
    }
    
    // स्टेटिक मेथड (प्रोटोटाइप पर नहीं)
    static createGuest() {
        return new Customer("Guest");
    }
}

const c = new Customer("John");
console.log(c.getFullName()); // "John"

चलाने का तरीका

node prototype-demo.js

आउटपुट

सिंपल मेथड = John Smith
प्रोटोटाइप मेथड = David Miller

महत्वपूर्ण अवधारणाएं

अवधारणाविवरण
thisवर्तमान इंस्टेंस को संदर्भित करता है
prototypeसभी इंस्टेंसेस द्वारा शेयर्ड ऑब्जेक्ट
मेथड परिभाषाConstructor.prototype.method = fn
विरासतChild.prototype = Object.create(Parent.prototype)

बेस्ट प्रैक्टिस

  • मेथड्स को प्रोटोटाइप पर रखें (मेमोरी कुशल)
  • प्रति-इंस्टेंस डेटा के लिए this.prop उपयोग करें
  • ES6 class सिंटैक्स पसंद करें (अधिक पठनीय)
  • एरो फंक्शन प्रोटोटाइप मेथड्स के लिए न उपयोग करें (this बाइंडिंग)
  1. JavaScript में Array.prototype.includes() मेथड JavaScript में Array.prototype.includes() मेथड

    JavaScript Array.prototype.includes() मेथड का उपयोग यह जांचने के लिए किया जाता है कि कोई ऐरे दिए गए एलिमेंट को शामिल करता है या नहीं। उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="w

  1. JavaScript का उपयोग करके पैरेंट एलिमेंट एक्सेस करना JavaScript का उपयोग करके पैरेंट एलिमेंट एक्सेस करना

    JavaScript का उपयोग करके पैरेंट एलिमेंट एक्सेस करने का निम्नलिखिक कोड है:उदाहरण<!DOCTYPE html> <html lang="hi"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>

  1. जावास्क्रिप्ट में फ़ंक्शन द्वारा लौटाए गए ऐरे को एक्सेस करना जावास्क्रिप्ट में फ़ंक्शन द्वारा लौटाए गए ऐरे को एक्सेस करना

    जावास्क्रिप्ट में फ़ंक्शन द्वारा लौटाए गए ऐरे को एक्सेस करने के लिए निम्नलिखित कोड है: उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /&g