Cảm ơn bạn!
Object.seal() trong JavaScript có gì hay?
Trong bài viết này, chúng ta cùng tìm hiểu về method Object.seal()
, cùng xem method này giúp được gì cho chúng ta nhé!
Object.seal() trong Javascript
Khi sử dụng Object.seal()
, object được truyền dưới dạng đối số sẽ bị thay đổi trở thành một object không chấp nhận các thuộc tính mới. Ta sẽ không thể thêm mới các thuộc tính. Các thuộc tính hiện có sẽ không thể bị xóa nhưng có thể bị thay đổi.
const students = {
"01" : "Trang",
"02": "Ha"
};
Object.seal(students);
Ta sẽ thêm, xóa một thuộc tính trong students
:
students["03"] = "Minh";
delete students["01"];
console.log(students); // {01: 'Trang', 02: 'Ha'}
Như các bạn thấy, ta sẽ không thể thêm mới hay xóa thuộc tính của students
.
Khi sử dụng Object.seal()
, ta có thể thay đổi giá trị thuộc tính của object:
students["02"] = "Hung";
console.log(students); // {01: 'Trang', 02: 'Hung'}
Kết quả sẽ tương tự như khi sử dụng với array:
Ta sẽ không thể thêm phần tử mới vào mảng khi đã sử dụng Object.seal()
.
const students = ["Trang", "Ha"];
Object.seal(students);
students.push("Nhi"); // Lỗi
Để kiểm tra object hiện đang ở trạng thái seal hay không ta kiểm tra bằng cách:
Object.isSealed(students); // true
Object.seal() vs Object.freeze()
Điểm khác nhau giữa hai method này về cơ bản là ở Object.seal()
ta có thể thay đổi giá trị của thuộc tính hiện có trong object, trong khi Object.freeze()
là immutable có nghĩa là ta sẽ không thể thay đổi thuộc tính của nó.
Các bạn có thể tìm hiểu thêm về Object.freeze()
tại: object.freeze() trong JavaScript có gì hay?.
Kết luận
Chúng ta đã cùng nhau tìm hiểu về method Object.seal()
trong Javascript, điểm khác nhau giữa nó và method Object.freeze()
.
Hy vọng bài viết giúp ích được cho các bạn. Hẹn gặp các bạn trong các bài viết tiếp theo.