📜  JavaScript 中的 Object.seal()(1)

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

JavaScript 中的 Object.seal()

在 JavaScript 中, Object.seal() 是一个用于对象的方法,它允许你封闭一个对象,从而禁止向对象添加新属性,删除现有属性和更改属性的可配置性。

封闭一个对象意味着对象的属性不能被修改,也不能改变属性的属性描述符(比如可配置性、可枚举性和可写性)。然而,封闭对象内部属性的值是可以修改的。

语法
Object.seal(obj)
  • obj:需要封闭的对象。
返回值

Object.seal() 方法返回被封闭的对象。

示例
const person = {
    name: "John",
    age: 30
};

Object.seal(person);

person.name = "Jane";   // 更改属性的值是可以的
delete person.age;      // 删除属性是不允许的

console.log(person);    // 输出: { name: "Jane", age: 30 }

在上面的示例中,我们创建了一个名为 person 的对象,并使用 Object.seal() 方法封闭了该对象。虽然我们可以更改 person 对象的 name 属性的值,但无法删除 age 属性。

注意事项
  • Object.seal() 会改变原始对象,而不是创建一个新对象。
  • 封闭后的对象的属性仍然是可以修改的,只是不能进行增删操作,也不能更改属性的可配置性。
  • 使用 Object.isSealed(obj) 方法可以判断一个对象是否被封闭。
  • 封闭一个对象可能会影响到该对象的原型链上的属性,但是不会影响到原型链上的对象是否可以被修改。
总结

Object.seal() 是 JavaScript 中一个用于封闭对象的方法。它限制了对象中属性的更改、删除和属性描述符的修改。当你希望对象的属性是固定的,以避免不小心修改时,你可以使用 Object.seal()