===============Object.freeze===============
const freeObj = {name: 'zyn'}
const freeObj1 = Object.freeze(freeObj)
freeObj === freeObj1 // true
Object.isExtensible(freeObj1) // false 不可以被扩展
Object.getOwnPropertyDescriptor(freeObj1, 'name') //
{value: "zyn", writable: false, enumerable: true, configurable: false}
configurable: false // 不能删除
enumerable: true // 可以被枚举
value: "zyn"
writable: false // 是否可以被重写
__proto__: Object
delete freeObj1.name // false
console.log(freeObj1) // {name: "zyn"}
===============Object.seal===============
const obj1 = {
a:1,
};
const obj2 = Object.seal(obj1);
obj1 === obj2;
// 返回原来的对象
Object.isExtensible(obj2); // false
Object.getOwnPropertyDescriptor(obj2,'a');
// {value: 1, writable: true, enumerable: true, configurable: false}
总结 :
Object.freeze 创建的对象 不可重写 不可删除
Object.seal 创建的对象 可重写 不可删除
Object.freeze和Object.seal
最新推荐文章于 2024-09-02 10:57:32 发布