📜  Javascript Object.preventExtensions()

📅  最后修改于: 2020-09-27 06:54:52             🧑  作者: Mango

JavaScript Object.preventExtensions()方法可防止将新属性添加到对象。

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()