在线文档教程

Reflect.isExtensible

Reflect.isExtensible

静态方法 Reflect.isExtensible() 判断一个对象是否可扩展 (即是否能够添加新的属性)。与它Object.isExtensible()方法相似,但有一些不同,详情可见differences

语法

Reflect.isExtensible(target)

参数

target检查是否可扩展的目标对象。

返回值

返回一个Boolean值表明该对象是否可扩展。

异常

抛出一个TypeError,如果对象不是 Object

描述

Reflect.isExtensible 判断一个对象是否可扩展 (即是否能够添加新的属性)。它与Object.isExtensible()方法一样。

示例

使用Reflect.isExtensible()

另请参阅Object.isExtensible().

// New objects are extensible. var empty = {}; Reflect.isExtensible(empty // === true // ...but that can be changed. Reflect.preventExtensions(empty Reflect.isExtensible(empty // === false // Sealed objects are by definition non-extensible. var sealed = Object.seal{} Reflect.isExtensible(sealed // === false // Frozen objects are also by definition non-extensible. var frozen = Object.freeze{} Reflect.isExtensible(frozen // === false

与 Object.isExtensible() 的不同点

如果该方法的第一个参数不是一个对象(原始值),那么将造成一个 TypeError异常。对于 Object.isExtensible(),非对象的第一个参数会被强制转换为一个对象。

Reflect.isExtensible(1 // TypeError: 1 is not an object Object.isExtensible(1 // false

规范

SpecificationStatusComment
ECMAScript 2015 (6th Edition, ECMA-262)The definition of 'Reflect.isExtensible' in that specification.StandardInitial definition.
ECMAScript Latest Draft (ECMA-262)The definition of 'Reflect.isExtensible' in that specification.Draft

浏览器兼容性

FeatureChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support49(Yes)42 (42)No supportNo support10

FeatureAndroidChrome for AndroidEdgeFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic supportNo support49(Yes)42.0 (42)No supportNo support10