ECMAScript 5 đã giới thiệu một số phương pháp để ngăn chặn việc sửa đổi đối tượng. Các biện pháp phòng ngừa đó đảm bảo rằng không ai, vô tình hoặc thay đổi chức năng của đối tượng.
Có 3 cấp độ của các phương pháp phòng ngừa
1) Ngăn chặn các tiện ích mở rộng
Trong cấp độ này, người ta không thể thêm bất kỳ thuộc tính hoặc phương thức mới nào nhưng có thể truy cập các thuộc tính hoặc phương thức hiện có. Ở đây có khả năng xóa đối tượng tương ứng. Object.preventExtensions () là phương pháp được sử dụng để hoàn thành nhiệm vụ này. Nó ngăn không cho bất kỳ thuộc tính mới nào được thêm vào đối tượng.
Ví dụ
Đầu ra
TypeError:Không thể xác định thuộc tính prop2, đối tượng không được mở rộng2) Con dấu
Nó cũng giống như việc ngăn chặn các tiện ích mở rộng, ngoài ra nó không cho phép xóa các thuộc tính hoặc phương thức hiện có. Để hoàn thành tác vụ này, Object.seal () phương pháp được sử dụng.
Ví dụ
Đầu ra
TypeError:Không thể xác định thuộc tính prop2, đối tượng không thể mở rộng2 // do niêm phong nên không thể xóa giá trị nhưng đã được cập nhật3) Đóng băng
Ngoài chức năng của con dấu, đóng băng thậm chí không cho phép truy cập vào các thuộc tính hiện có. Để đóng băng một đối tượng, chúng tôi sử dụng Object.freeze () phương pháp. Nó cũng có thể làm cho một đối tượng không thể thay đổi .
Ví dụ
Đầu ra
TypeError:Không thể xác định thuộc tính prop2, đối tượng không thể mở rộng1 // vì đóng băng giá trị sẽ không bị xóa và sẽ không nhận được cập nhật.