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()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。