Kết quả của đoạn code là:
const user = {
name: 'lao Hac',
age: 69,
pet: {
type: 'cho',
name: 'vang'
}
};
Object.freeze(user);
user.pet.name = 'shiba';
console.log(user.pet.name);
const user = {
name: 'lao Hac',
age: 69,
pet: {
type: 'cho',
name: 'vang'
}
};
Object.freeze(user);
user.pet.name = 'shiba';
console.log(user.pet.name);
Suy nghĩ trả lời câu hỏi trước khi xem đáp án
Lời giải:
Báo saiĐể tránh bất kỳ sự thay đổi nào trên các thuộc tính của một object, ta có thể dùng hàm Object.freeze, tuy nhiên hàm này chỉ có thể thực hiện shallow freeze trên object đó mà thôi, điều đó có nghĩa bất kỳ sự thay đổi nào trên các thuộc tính của object con đều được cho phép. Trong ví dụ này, chúng ta không thể thay đổi user.age, nhưng không có vấn đề gì khi thay đổi user.pet.name. Nếu chúng ta không muốn thay đổi bất kỳ thuộc tính nào của object, có thể dùng đệ quy Object.freeze cho các thuộc tính con hoặc dùng các chức năng deep freeze của các thư viện có sẵn.
250 Câu hỏi trắc nghiệm Javascript, CSS, HTML có đáp án
Tổng hợp 250 câu hỏi trắc nghiệm Javascript có đáp án đầy đủ nhằm giúp các bạn dễ dàng ôn tập lại toàn bộ các kiến thức.