Phương thức JavaScript Object.freeze () đóng băng một đối tượng.
Một đối tượng bị đóng băng không thể thay đổi được nữa. Đóng băng một đối tượng ngăn cản:
- Thuộc tính mới được thêm vào đối tượng.
- Các thuộc tính hiện có cần được xóa khỏi đối tượng.
- Thay đổi khả năng liệt kê, khả năng định cấu hình hoặc khả năng ghi của các thuộc tính hiện có.
- Thay đổi giá trị của thuộc tính đối tượng hiện có và nguyên mẫu.
Cú pháp của freeze()
phương thức là:
Object.freeze(obj)
Các freeze()
phương pháp, là một phương pháp tĩnh, được gọi bằng cách sử dụng Object
tên lớp.
tham số đông lạnh ()
Các freeze()
phương pháp có trong:
- obj - Đối tượng để đóng băng.
Giá trị trả về từ freeze ()
- Đối tượng được chuyển cho hàm.
Ghi chú :
- Bất kỳ nỗ lực nào để thêm hoặc xóa khỏi tập thuộc tính của các đối tượng bị đóng băng sẽ không thành công hoặc âm thầm hoặc ném
TypeError
(chủ yếu khi ở chế độ nghiêm ngặt). - Các đối tượng được niêm phong có
Object.seal()
thể thay đổi các thuộc tính hiện có của chúng trong khiObject.freeze()
làm cho các thuộc tính hiện có trở nên bất biến.
Ví dụ: Sử dụng freeze ()
let obj = ( prop: function () (), foo: "bar", ); let o = Object.freeze(obj); console.log(o == obj); // True -> Returns the same object console.log(Object.isFrozen(obj)); // true // changes will fail silently obj.foo = "bar1"; console.log(obj.foo); // bar // does not add silently obj.new_foo = "bar"; console.log(obj.new_foo); // undefined // Following will also throw error // Object.setPrototypeOf(obj, ( x: 20 ))
Đầu ra
true true bar không xác định
Lưu ý : Object.freeze(obj)
chỉ áp dụng cho các thuộc tính tức thời của obj
. Nếu giá trị của các thuộc tính đó là bản thân các đối tượng, thì các đối tượng đó không bị đóng băng và có thể là mục tiêu của các thao tác thêm, xóa hoặc gán lại thuộc tính.
Khuyến nghị đọc: JavaScript Object seal ()