📅  最后修改于: 2023-12-03 15:31:39.197000             🧑  作者: Mango
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()
方法可以将一个对象冻结起来,防止添加新的属性、修改已知属性的值以及删除属性。