📜  JavaScript | Object.isExtensible() 方法(1)

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

JavaScript | Object.isExtensible() 方法

简介

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

语法
Object.isExtensible(obj)
参数
  • obj:必填。要检查是否可扩展的对象。
返回值

返回一个布尔值,表示给定对象是否可扩展。

示例
示例一
const obj = {
  name: 'Tom',
  age: 18
};

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

Object.preventExtensions(obj);

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

这段代码中,我们首先定义了一个对象 obj,然后调用 Object.isExtensible(obj) 方法。由于对象 obj 是可扩展的,所以这个方法的返回值为 true。接着,我们调用了 Object.preventExtensions(obj) 方法来防止对象 obj 添加新的属性,这个时候调用 Object.isExtensible(obj) 的返回值为 false

示例二
const obj = {
  name: 'Tom',
  age: 18
};

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

obj.gender = 'male';

console.log(obj.gender);    // 'male'

这段代码中,我们首先定义了一个对象 obj,然后调用 Object.isExtensible(obj) 方法。由于对象 obj 是可扩展的,所以这个方法的返回值为 true。接着,我们对对象 obj 添加了一个新的属性 gender,这个时候我们可以输出 obj.gender 的值为 'male'

注意事项
  • 可以用 Object.preventExtensions() 方法来防止对象添加新的属性或修改已有的属性。被防止扩展的对象仍然可以删除已有的属性。
  • 使用 Object.seal() 方法可以将一个对象密封起来,防止添加新的属性和删除现有属性,但可以修改已有属性的值。
  • 使用 Object.freeze() 方法可以将一个对象冻结起来,防止添加新的属性、修改已知属性的值以及删除属性。
相关链接