ऑब्जेक्ट लिटरल का उपयोग करके बनाए गए ऑब्जेक्ट्स सिंगलटन होते हैं, जिसका अर्थ है कि जब ऑब्जेक्ट में कोई परिवर्तन किया जाता है, तो यह पूरे स्क्रिप्ट में उस ऑब्जेक्ट को प्रभावित करता है। जबकि यदि कोई ऑब्जेक्ट कंस्ट्रक्टर फंक्शन का उपयोग करके बनाया जाता है और उसमें परिवर्तन किया जाता है, तो वह परिवर्तन पूरे स्क्रिप्ट में ऑब्जेक्ट को प्रभावित नहीं करेगा।
1) ऑब्जेक्ट लिटरल का उपयोग करके बनाए गए ऑब्जेक्ट्स
चूंकि ये सिंगलटन होते हैं, ऑब्जेक्ट में किया गया परिवर्तन पूरे स्क्रिप्ट में बना रहता है। एक इंस्टेंस में परिवर्तन उस ऑब्जेक्ट के सभी इंस्टेंस को प्रभावित करेगा।
निम्नलिखित उदाहरण में यदि हम देखें, तो दोनों ऑब्जेक्ट्स "student" और "newStudent" प्रारंभ में समान नाम (रवि) प्रदर्शित करते हैं। लेकिन एक बार ऑब्जेक्ट "newStudent" का नाम बदल दिया जाता है (दूसरे ऑब्जेक्ट का नाम स्थिर रखते हुए), तो दोनों ऑब्जेक्ट्स बदला हुआ नाम (कुमार) प्रदर्शित करते हैं।
उदाहरण
<html> <body> <script> var student = { name: "Ravi" } var newStudent = student; document.write("Before change"); document.write("</br>"); document.write("student name = " + student.name); document.write("</br>"); document.write("new student name = " + newStudent.name); document.write("</br>"); newStudent.name = "kumar"; document.write("After change"); document.write("</br>"); document.write("student name = " + student.name); document.write("</br>"); document.write("new student name = " + newStudent.name); </script> </body> </html>
आउटपुट
Before change student name = Ravi new student name = Ravi After change student name = kumar new student name = kumar
2) कंस्ट्रक्टर फंक्शन का उपयोग करके बनाए गए ऑब्जेक्ट्स
फंक्शन कंस्ट्रक्टर के साथ परिभाषित ऑब्जेक्ट आपको उस ऑब्जेक्ट के कई इंस्टेंस रखने की अनुमति देता है। इसका अर्थ है कि एक इंस्टेंस में किया गया परिवर्तन अन्य इंस्टेंस को प्रभावित नहीं करेगा।
निम्नलिखित उदाहरण में भले ही ऑब्जेक्ट "newStudent" का नाम बदल दिया गया हो, अन्य ऑब्जेक्ट "student" का नाम वही रहा। जैसा कि आउटपुट में दिखाया गया है, दोनों ऑब्जेक्ट्स ने अलग-अलग नाम प्रदर्शित किए।
उदाहरण
<html> <body> <script> var stu = function() { this.name= "Ravi" } var newStudent = new stu(); var student = new stu(); document.write("Before change"); document.write("<br>"); document.write("student name = " + student.name); document.write("<br>"); document.write("new student name = " + newStudent.name); document.write("<br>"); newStudent.name = "kumar"; document.write("After change"); document.write("<br>"); document.write("student name = " + student.name); document.write("<br>"); document.write("new student name = " + newStudent.name); </script> </body> </html>
आउटपुट
Before change student name = Ravi new student name = Ravi After change student name = Ravi new student name = kumar