परिचय
जावास्क्रिप्ट में, एक कंस्ट्रक्टर फ़ंक्शन डिफ़ॉल्ट रूप से नवनिर्मित this ऑब्जेक्ट को लौटाता है। हालांकि, यदि कंस्ट्रक्टर स्पष्ट रूप से एक ऑब्जेक्ट लौटाता है (नॉन-प्रिमिटिव), तो वह ऑब्जेक्ट this के बजाय लौटाया जाता है। प्रिमिटिव मान (स्ट्रिंग, नंबर, बूलियन) लौटाने पर नजरअंदाज कर दिया जाता है।
उदाहरण
निम्न कोड जावास्क्रिप्ट में कंस्ट्रक्टर से मान वापस करने के लिए है:
<!DOCTYPE html> <html lang="hi"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>कंस्ट्रक्टर रिटर्न</title> <style> body { font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; } .result { font-size: 20px; font-weight: 500; } </style> </head> <body> <h1>कंस्ट्रक्टर से मान वापस करना</h1> <div style="color: green;" class="result"></div> <button class="Btn">यहाँ क्लिक करें</button> <h3> कंस्ट्रक्टर से ऑब्जेक्ट वापस करने के लिए ऊपर दिए गए बटन पर क्लिक करें </h3> <script> const resEle = document.querySelector(".result"); function Human() { this.firstName = 'रोहन'; this.lastName = 'शर्मा'; this.age = 22; // यह ऑब्जेक्ट 'this' को ओवरराइड करेगा return { firstName: 'मोहित', lastName: 'शर्मा' }; } const obj = new Human(); document.querySelector(".Btn").addEventListener("click", () => { for (const key in obj) { resEle.innerHTML += 'Key = ' + key + ' : Value = ' + obj[key] + '<br>'; } }); </script> </body> </html>
आउटपुट
उपरोक्त कोड निम्न आउटपुट उत्पन्न करेगा:

उपरोक्त कोड निम्न आउटपुट उत्पन्न करेगा:

नियम सारांश
| रिटर्न वैल्यू | परिणाम |
|---|---|
कोई रिटर्न नहीं / return; / return undefined | this (नया ऑब्जेक्ट) लौटाता है |
प्रिमिटिव (return 42, return 'str', return true) | नजरअंदाज, this लौटाता है |
ऑब्जेक्ट (return {}, return [], return new Date()) | वापस किया गया ऑब्जेक्ट लौटाता है |
उपयोग का मामला
कैशिंग/सिंगलटन पैटर्न के लिए उपयोगी:
function Singleton() {
if (Singleton.instance) return Singleton.instance;
this.data = 'कुछ डेटा';
Singleton.instance = this;
}