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

जावास्क्रिप्ट इनहेरिटेंस के लिए नए के बजाय ऑब्जेक्ट.क्रिएट कब चुनें?

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

When to Choose Object.create Over new for JavaScript Inheritance?

जावास्क्रिप्ट इनहेरिटेंस: ऑब्जेक्ट.क्रिएट बनाम नया

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

Object.create(prototype[, propertiesObject])दूसरी ओर, नए कीवर्ड का उपयोग किसी ऑब्जेक्ट का नया उदाहरण बनाने और आह्वान करने के लिए किया जाता है इसका कंस्ट्रक्टर फ़ंक्शन। नए के लिए सिंटैक्स है:

new ConstructorFunction([arguments])

Object.create(prototype[, propertiesObject])
इनहेरिटेंस के लिए सही तरीका चुनना

new ConstructorFunction([arguments])

const मॉडल = { // आधार वस्तु गुण और विधियाँ... }; कॉन्स्ट रेस्टमॉडल = ऑब्जेक्ट.क्रिएट(मॉडल);यदि, हालांकि, आप इनहेरिटिंग ऑब्जेक्ट पर बेस ऑब्जेक्ट के कंस्ट्रक्टर फ़ंक्शन को कॉल करना चाहते हैं, तो आपको नए का उपयोग करना चाहिए। उदाहरण के लिए:

फ़ंक्शन मॉडल() { // बेस ऑब्जेक्ट कंस्ट्रक्टर... } फ़ंक्शन रेस्टमॉडल() { मॉडल.कॉल(यह); // अतिरिक्त गुण और विधियाँ... }

Object.create(prototype[, propertiesObject])
आपके परिदृश्य के लिए समाधान

function Model() {
    // Base object constructor...
}

function RestModel() {
    Model.call(this);
    // Additional properties and methods...
}

RestModel.prototype = object.create(Model.prototype);यह एक नया रेस्टमॉडल प्रोटोटाइप बनाएगा जो इससे प्राप्त होता है मॉडल प्रोटोटाइप.

नवीनतम ट्यूटोरियल अधिक>

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

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

Copyright© 2022 湘ICP备2022001581号-3