此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

Reflect.isExtensible()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨2016年9月⁩.

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

语法

Reflect.isExtensible(target)

参数

target

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

返回值

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

异常

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

描述

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

示例

使用 Reflect.isExtensible()

详情可见 Object.isExtensible()

js
// 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(),非对象的第一个参数会被强制转换为一个对象。

js
Reflect.isExtensible(1);
// TypeError: 1 is not an object

Object.isExtensible(1);
// false

规范

Specification
ECMAScript® 2026 Language Specification
# sec-reflect.isextensible

浏览器兼容性

参见