Computer >> Máy Tính >  >> Lập trình >> Javascript

Sự khác biệt chính giữa các đối tượng được tạo bằng cách sử dụng hàm tạo đối tượng và hàm tạo là gì?

Các đối tượng được tạo bằng cách sử dụng ký tự đối tượng là singletons , điều này có nghĩa là khi một thay đổi được thực hiện đối với đối tượng, nó sẽ ảnh hưởng đến toàn bộ tập lệnh đối tượng. Trong khi nếu một đối tượng được tạo bằng cách sử dụng hàm khởi tạo và một thay đổi được thực hiện đối với nó, thì thay đổi đó sẽ không ảnh hưởng đến đối tượng trong suốt tập lệnh.

Hãy thảo luận riêng về chúng.

1) Các đối tượng được tạo bằng cách sử dụng ký tự đối tượng

Vì đây là các đĩa đơn , sự thay đổi đối với một đối tượng vẫn tồn tại trong suốt tập lệnh. Một sự thay đổi trong một trường hợp sẽ ảnh hưởng đến tất cả các trường hợp của đối tượng.

Trong ví dụ sau nếu chúng ta quan sát, cả hai đối tượng " học sinh "và" newStudent "hiển thị cùng một tên (Ravi) ban đầu. Nhưng khi tên của đối tượng " newstudent "được thay đổi (giữ tên đối tượng khác không đổi), cả hai đối tượng đã hiển thị tên đã thay đổi (kumar) .

Ví dụ

<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>

Đầu ra

Before change
student name = Ravi
new student name = Ravi
After change
student name = kumar
new student name = kumar


2) Các đối tượng được tạo bằng hàm tạo.

Đối tượng được xác định bằng f đồng chú thích nstructor l ets bạn có nhiều trường hợp của đối tượng đó. Điều này có nghĩa là thay đổi được thực hiện cho một phiên bản, sẽ không ảnh hưởng đến các phiên bản khác.

Trong ví dụ sau, mặc dù tên của đối tượng " newStudent "đã thay đổi, tên của đối tượng khác" sinh viên "vẫn như cũ. Cả hai đối tượng đều hiển thị các tên khác nhau như được hiển thị trong đầu ra.

Ví dụ

<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>

Đầu ra

Before change
student name = Ravi
new student name = Ravi
After change
student name = Ravi
new student name = kumar