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

क्या आप ES6 में \'नए\' के बिना क्लास कंस्ट्रक्टर को कॉल कर सकते हैं?

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

 Can You Call a Class Constructor Without \'new\' in ES6?

ES6 में नए कीवर्ड के बिना क्लास कंस्ट्रक्टर को कॉल करें

क्लास परिभाषा को देखते हुए:

class Foo {
  constructor(x) {
    if (!(this instanceof Foo)) return new Foo(x);
    this.x = x;
  }
  hello() {
    return `hello ${this.x}`;
  }
}

नए कीवर्ड के बिना क्लास कंस्ट्रक्टर को सीधे कॉल करना संभव नहीं है। ऐसा इसलिए है क्योंकि ES6 में कक्षाओं में स्वाभाविक रूप से एक कंस्ट्रक्टर फ़ंक्शन होता है जिसे क्लास को कॉल करते समय लागू किया जाता है। &&&]

यह त्रुटि संदेश स्पष्ट रूप से इंगित करता है कि क्लास कंस्ट्रक्टर को केवल नए ऑपरेटर के साथ बुलाया जा सकता है, जो क्लास का एक नया उदाहरण बनाने के लिए आवश्यक है।

इस सीमा को दूर करने के लिए, निम्नलिखित तरीकों पर विचार करें :
Cannot call a class as a function

इसके बजाय एक नियमित फ़ंक्शन का उपयोग करें:

  • function Foo(x) { यह.एक्स = एक्स; यह.हैलो = फ़ंक्शन() { वापसी `हैलो ${this.x}`; } }
कक्षा को हमेशा new के साथ कॉल करें:
Cannot call a class as a function
  • (new Foo('world')).hello(); // "हैलो वर्ल्ड"
क्लास को एक फ़ंक्शन में लपेटें और नए के साथ कॉल करें:
Cannot call a class as a function
  • var FooWrapper = function(...args ) { return new Foo(...args) }; FooWrapper('world').hello(); // "हैलो वर्ल्ड"
नवीनतम ट्यूटोरियल अधिक>

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

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

Copyright© 2022 湘ICP备2022001581号-3