不可扩展对象:不能添加
var person = {name: 'wangdanting'};
Object.preventExtensions(person);
person.age = 23;
console.log(person.age); // => undefined
person.name = 'abc';
console.log(person.name); // => 'abc'
console.log(Object.isExtensible(person)); // => false
密封对象:不能添加、不能删除
var person = {name: 'wangdanting'};
Object.seal(person);
person.age = 23;
console.log(person.age); // => undefined
person.name = 'abc';
console.log(person.name); // => 'abc'
delete person.name
console.log(person.name); // => 'abc'
console.log(Object.isSealed(person)); // => true
冻结对象:不能添加、不能删除、不能修改
var person = {name: 'wangdanting'};
Object.freeze(person);
person.age = 23;
console.log(person.age); // => undefined
person.name = 'abc';
console.log(person.name); // => 'wangdanting'
delete person.name
console.log(person.name); // => 'wangdanting'
console.log(Object.isExtensible(person)); // => false
console.log(Object.isSealed(person)); // => true
本文深入探讨了JavaScript中对象的不可变性概念,包括如何使用preventExtensions、seal和freeze方法来限制对象的修改,以及这些操作的影响和区别。

1710

被折叠的 条评论
为什么被折叠?



