📜  JavaScript Object.isExtensible()(1)

📅  最后修改于: 2023-12-03 15:16:06.217000             🧑  作者: Mango

JavaScript Object.isExtensible()

简介

Object.isExtensible()方法用于判断一个对象是否可扩展,即是否可以在该对象上添加新的属性。

语法
Object.isExtensible(obj)

参数:

obj:要判断的对象。

返回值:

一个布尔值,表示该对象是否可扩展。可扩展返回true,否则返回false

示例
示例一
const obj = { a: 1 };

console.log(Object.isExtensible(obj)); // true

Object.preventExtensions(obj);

console.log(Object.isExtensible(obj)); // false

输出:

true
false

上述代码定义了一个名为obj的对象,初始时该对象是可扩展的。然后调用Object.preventExtensions()方法,防止对象进一步扩展。最后通过Object.isExtensible()方法判断对象是否可扩展,结果为truefalse

示例二
const obj = {};

console.log(Object.isExtensible(obj)); // true

Object.defineProperty(obj, 'a', {
  value: 1,
  writable: true,
  enumerable: true,
  configurable: false
});

console.log(Object.isExtensible(obj)); // false

输出:

true
false

上述代码定义了一个空对象obj,初始时该对象是可扩展的。然后通过Object.defineProperty()方法定义了一个属性a,并将其设置为不可配置。最后通过Object.isExtensible()方法判断对象是否可扩展,结果为truefalse

注意事项
  • Object.isExtensible()方法只能判断对象是否可扩展,无法判断对象是否被冻结。如果对象被冻结,则无法在该对象上添加、删除或修改属性。

  • Object.isExtensible()方法并不会影响对象上已有的属性是否可配置,只会影响对象本身是否可扩展。

  • 如果一个对象被传递到Object.isExtensible()方法中,但该对象不是对象类型,则会抛出TypeError异常。

参考链接