วัตถุที่สร้างขึ้นโดยใช้ตัวอักษรของวัตถุคือ singletons ซึ่งหมายความว่าเมื่อทำการเปลี่ยนแปลงกับอ็อบเจ็กต์ จะมีผลกับอ็อบเจ็กต์ทั้งสคริปต์ แม้ว่าวัตถุจะถูกสร้างขึ้นโดยใช้ฟังก์ชันตัวสร้างและมีการเปลี่ยนแปลง การเปลี่ยนแปลงนั้นจะไม่ส่งผลต่อวัตถุตลอดทั้งสคริปต์
มาคุยกันทีละคน
1) วัตถุที่สร้างขึ้นโดยใช้ตัวอักษรวัตถุ
เนื่องจากสิ่งเหล่านี้คือ ซิงเกิ้ลตัน การเปลี่ยนแปลงวัตถุจะคงอยู่ตลอดสคริปต์ การเปลี่ยนแปลงในอินสแตนซ์เดียวจะส่งผลต่ออินสแตนซ์ทั้งหมดของออบเจ็กต์
ในตัวอย่างต่อไปนี้ หากเราสังเกต วัตถุทั้งสองอย่าง "นักเรียน " และ "newStudent " แสดง ชื่อ(รวี) . เดียวกัน เริ่มแรก แต่เมื่อชื่อวัตถุ "newstudent " มีการเปลี่ยนแปลง (ทำให้ชื่อวัตถุอื่นคงที่) วัตถุทั้งสองได้แสดง ชื่อที่เปลี่ยนแปลง (kumar) .
ตัวอย่าง
<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) อ็อบเจ็กต์ที่สร้างโดยใช้ฟังก์ชันคอนสตรัคเตอร์
วัตถุที่กำหนดด้วย f ร่วม unction อาจารย์ l et คุณมีหลายอินสแตนซ์ของวัตถุนั้น หมายถึงการเปลี่ยนแปลงที่เกิดขึ้นกับอินสแตนซ์หนึ่งๆ จะไม่ส่งผลต่ออินสแตนซ์อื่นๆ
ในตัวอย่างต่อไปนี้แม้ว่าชื่อของวัตถุ "newStudent " ได้เปลี่ยน ชื่อของวัตถุอื่น "นักเรียน " ยังคงเหมือนเดิม ออบเจ็กต์ทั้งสองแสดงชื่อต่างกันตามที่แสดงในผลลัพธ์
ตัวอย่าง
<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