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.setPrototypeOf()用法及代碼示例
- JavaScript Object.isPrototypeOf()用法及代碼示例
- JavaScript Object.assign()用法及代碼示例
- JavaScript Object.isExtensible()用法及代碼示例
- JavaScript Object.getPrototypeOf()用法及代碼示例
- JavaScript Object.isFrozen()用法及代碼示例
- JavaScript Object.getOwnPropertyDescriptors()用法及代碼示例
- JavaScript Object.getOwnPropertySymbols()用法及代碼示例
- JavaScript Object.defineProperties()用法及代碼示例
- JavaScript Object.freeze()用法及代碼示例
- JavaScript Object.preventExtensions()用法及代碼示例
- JavaScript Object.is()用法及代碼示例
- JavaScript Object.fromEntries()用法及代碼示例
- JavaScript Object.getOwnPropertyDescriptor()用法及代碼示例
- JavaScript Object.getOwnPropertyNames()用法及代碼示例
- JavaScript Object.propertyIsEnumerable()用法及代碼示例
- JavaScript Object.defineProperty()用法及代碼示例
- JavaScript Object.keys()用法及代碼示例
- JavaScript Object.values()用法及代碼示例
- JavaScript Object.create()用法及代碼示例
注:本文由純淨天空篩選整理自 Javascript Object.seal()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。