当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


JavaScript Object.seal()用法及代码示例


JavaScript Object.seal() 方法密封给定的对象。

seal() 方法可防止向对象添加新属性并将所有现有属性标记为不可配置。

用法:

Object.seal(obj)

seal() 方法是静态方法,使用Object 类名调用。

seal()参数

seal() 方法包含:

  • obj - 要密封的对象。

seal() 的返回值

  • 返回被密封的对象。

示例:使用 seal()

let obj = {
  foo: "bar",
  func: function () {},
};

// before sealing, properties can be added, modified, or removed
obj.foo = "JavaScript";
obj.value = 5;
delete obj.func;

// sealing the object
o = Object.seal(obj);

// can still change property values
obj.foo = "bar1";

// no other change
// fails silently
obj.foo1 = "bar";
delete obj.foo;

console.log(obj); // { foo: 'bar1', value: 5 }

// cannot convert data property to accessors or vice versa
Object.defineProperty(obj, "foo", {
  get: function () {
    return "g";
  },
});
// TypeError Cannot redefine property: foo

输出

{ foo: 'bar1', value: 5 }
TypeError Cannot redefine property: foo

注意

  • 默认情况下,对象是可扩展的(可以向它们添加新属性)。对象的密封使对象的属性固定不变。只要它们是可写的,当前属性的值仍然可以更改。
  • Object.isSealed() 可用于检查对象是否被密封。
  • 尝试将数据属性转换为访问器(反之亦然)将静默失败或抛出 TypeError

相关用法


注:本文由纯净天空筛选整理自 Javascript Object.seal()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。