जावास्क्रिप्ट फ़ंक्शन के बॉडी में रिटर्न स्टेटमेंट का प्रभाव क्या होता है जब इसे किसी नए ऑब्जेक्ट ('नया' कीवर्ड 'के साथ कन्स्ट्रक्टर के रूप में उपयोग किया जाता है?जेएस कन्स्ट्रक्टर्स में रिटर्न स्टेटमेंट
उत्तर
आमतौर पर return
बस निर्माता से बाहर निकलता है। हालांकि, यदि लौटाया गया मान एक ऑब्जेक्ट है, तो इसका उपयोग new
अभिव्यक्ति के मान के रूप में किया जाता है।
पर विचार करें:
function f() {
this.x = 1;
return;
}
alert((new f()).x);
प्रदर्शित करता है 1, लेकिन
function f() {
this.x = 1;
return { x: 2};
}
alert((new f()).x);
प्रदर्शित करता है 2.
कारण new
ऑपरेटर का उपयोग करने के लिए है यह सुनिश्चित करें कि this
निर्माता के अंदर एक को संदर्भित करता है नया संदर्भ, जो समर्थन करता है:
this.functionName = function(){...};
, और instanceof
ऑपरेटर के उपयोग की अनुमति के लिए:
function foo() {...}
var bar = new foo();
alert(bar instanceof foo);
इस तरह के एक निर्माता के अंदर return {...}
का उपयोग करते हुए इन प्रभावों के दोनों को नकारता रूप this
इस तरह के एक पैटर्न के साथ की जरूरत नहीं किया जाएगा, और instanceof
के रूप में होगा वापसी false
।
आपकी प्रतिक्रिया के लिए धन्यवाद, मुझे लगता है कि यह जेएस रचनाकारों की कमी का खुलासा करता है। – Tony
या भाषा में लचीलापन दिखाता है :) –
- 1. रिटर्न स्टेटमेंट
- 2. मल्टी रिटर्न स्टेटमेंट स्ट्रेंज?
- 3. क्या रिटर्न स्टेटमेंट कॉपी मान
- 4. पायथन रिकर्सन और रिटर्न स्टेटमेंट
- 5. जावा कन्स्ट्रक्टर्स
- 6. ओवरराइडिंग कन्स्ट्रक्टर्स
- 7. कन्स्ट्रक्टर्स विरासत
- 8. क्या सी ++ रिटर्न स्टेटमेंट लागू करता है?
- 9. उपयोग() {} ब्लॉक के अंदर उपज रिटर्न स्टेटमेंट
- 10. एसक्यूएल चयन स्टेटमेंट पर रिटर्न बूलियन वैल्यू
- 11. एक रिटर्न स्टेटमेंट में दो स्ट्रिंग कैसे वापस करें?
- 12. रिटर्न स्टेटमेंट में परिणाम के आसपास कोष्ठक हैं?
- 13. जेएस क्लास बनाएं: आईआईएफई बनाम रिटर्न प्रोटोटाइप
- 14. पैरामीटर रहित कन्स्ट्रक्टर्स
- 15. पॉलिमॉर्फिज्म और कन्स्ट्रक्टर्स
- 16. जेनेरिक कन्स्ट्रक्टर्स का लाभ
- 17. एएसपी.NET एमवीसी नियंत्रक कन्स्ट्रक्टर्स में सत्र शून्य,
- 18. इकाई फ्रेमवर्क पैरामीटर/ओवरलोडेड कन्स्ट्रक्टर्स?
- 19. रिटर्न स्टेटमेंट के बाद यह परिवर्तनीय परिवर्तन क्यों होगा?
- 20. क्या रिटर्न स्टेटमेंट लॉक के अंदर या बाहर होना चाहिए?
- 21. रिटर्न वैल्यू एक नई लाइन पर होने पर जावास्क्रिप्ट रिटर्न स्टेटमेंट क्यों काम नहीं करता है?
- 22. jquery $ .ajax जेएस त्रुटि फेंकता है जब रिटर्न हेडर 404
- 23. जेएस
- 24. जावा में, एक पोस्ट वृद्धि ऑपरेटर रिटर्न स्टेटमेंट में कैसे कार्य करता है?
- 25. स्विच स्टेटमेंट
- 26. क्या सी ++ कन्स्ट्रक्टर्स टेम्पलेट्स हो सकते हैं?
- 27. में जेएस
- 28. जावा में स्विच स्टेटमेंट
- 29. स्विच स्टेटमेंट में regexp
- 30. जावास्क्रिप्ट स्टेटमेंट में चर
देखें: http://stackoverflow.com/questions/1978049/what-values-can-a-constructor-return-to-avoid-returning-this/ – CMS