當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。