Object.isExtensible()
Object.isExtensible()
静态方法用于确定一个对象是否可扩展(是否可以向其添加新的属性)。
试试
语法
js
Object.isExtensible(obj)
参数
obj
-
要检查的对象。
返回值
一个Boolean
,指示给定对象是否可扩展。
描述
对象默认情况下是可扩展的:它们可以添加新的属性,并且它们的[[Prototype]]
可以重新分配。可以使用以下方法之一将对象标记为不可扩展Object.preventExtensions()
,Object.seal()
,Object.freeze()
,或Reflect.preventExtensions()
。
示例
使用 Object.isExtensible
js
// New objects are extensible.
const empty = {};
Object.isExtensible(empty); // true
// They can be made un-extensible
Object.preventExtensions(empty);
Object.isExtensible(empty); // false
// Sealed objects are by definition non-extensible.
const sealed = Object.seal({});
Object.isExtensible(sealed); // false
// Frozen objects are also by definition non-extensible.
const frozen = Object.freeze({});
Object.isExtensible(frozen); // false
非对象参数
在 ES5 中,如果此方法的参数不是对象(一个原始值),那么它将导致TypeError
。在 ES2015 中,如果传递了一个非对象参数,它将返回false
,不会出现任何错误,因为原始值在定义上是不可变的。
js
Object.isExtensible(1);
// TypeError: 1 is not an object (ES5 code)
Object.isExtensible(1);
// false (ES2015 code)
规范
规范 |
---|
ECMAScript 语言规范 # sec-object.isextensible |
浏览器兼容性
BCD 表格仅在启用了 JavaScript 的浏览器中加载。