preventExtensions()
方法的语法为:
Object.preventExtensions(obj)
使用Object
类名称调用preventExtensions()
方法,它是一个静态方法。
preventExtensions()参数
preventExtensions()
方法采用:
- obj-应该使其不可扩展的对象。
从preventExtensions()返回值
- 返回使对象不可扩展的对象。
笔记:
- 通常,不可扩展对象的属性仍可以删除。
- 尝试将新属性添加到不可扩展对象将失败,无论是无提示还是在严格模式下
TypeError
。 - 属性仍可以添加到不可扩展对象的原型中。
示例:使用preventExtensions()
let obj = {};
// by default, objects are extensible
console.log(Object.isExtensible(obj)); // true
let obj1 = Object.preventExtensions(obj);
console.log(obj == obj1); // true -> Returns the same object
console.log(Object.isExtensible(obj)); // false
// TypeError: Cannot define property newProp, object is not extensible
Object.defineProperty(obj, "newProp", {
value: 123456,
});
输出
true
true
false
TypeError: Cannot define property newProp, object is not extensible
推荐阅读: JavaScript Object.isExtensible()