📜  Javascript Object.isSealed()(1)

📅  最后修改于: 2023-12-03 15:16:06.220000             🧑  作者: Mango

Javascript Object.isSealed()

简介

Object.isSealed()方法用于判断一个对象是否被密封。

当一个对象被密封时,它的属性不可以被添加、删除或通过属性描述符来修改,但是数据属性的值可以被修改。

语法
Object.isSealed(obj)

其中,obj为需要检查的对象。

返回值

Object.isSealed()方法返回一个布尔值,表示该对象是否被密封。

示例
const obj = {
  name: 'foo',
  age: 18
};

Object.seal(obj);

console.log(Object.isSealed(obj)); // true

obj.gender = 'male';

console.log(obj); // { name: 'foo', age: 18 }

delete obj.age;

console.log(obj); // { name: 'foo' }

Object.defineProperty(obj, 'name', { writable: false });

console.log(obj); // { name: 'foo' }

以上示例中,首先定义了一个对象obj,并定义了两个属性name和age。然后通过Object.seal()方法将对象obj密封。最后通过Object.isSealed()方法检查对象是否被密封,结果为true。

接着,在对象obj上添加一个属性gender,但因为对象已被密封,该属性并未被添加成功。

然后删除了属性age,同样因为对象已被密封,该操作也未成功。

最后用Object.defineProperty()方法将属性name的可写性设置为false,同样未成功,因为对象已被密封。

注意事项
  • Object.isSealed()方法只能用于对象,如果传入的参数不是对象,会抛出TypeError错误。

  • Object.isSealed()方法只能判断一个对象是否被密封,无法判断一个对象的属性是否被密封。若需要检查对象的每个属性是否被密封,需要遍历对象的每个属性进行检查。