object.isextensible()用于检测对象是否允许添加新属性,返回true或false;默认对象返回true,经preventextensions、seal或freeze处理后返回false,不改变对象状态,仅作只读判断。

Object.isExtensible 是一个只读检测方法,用来判断对象当前是否允许添加新属性——它不改变对象状态,只告诉你“还能不能加字段”。
基本用法很简单
传入一个对象,返回 true 或 false:
- 默认创建的对象(如
{}、new Object()、字面量)都返回true - 只要被
Object.preventExtensions、Object.seal或Object.freeze处理过,就返回false - 即使属性本身不可写或不可配置,只要没禁扩展,仍算可扩展
常见检查场景
适合在关键操作前做轻量级校验,比如:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 表单提交前确认数据对象是否还允许动态挂载临时字段(如“校验标记”)
- 组件接收 props 时,判断外部传入的对象是否处于“锁定前阶段”
- 调试时快速识别对象是否已被密封或冻结(配合
Object.isSealed/Object.isFrozen)
注意几个易错点
它只管“能不能加新属性”,和其他属性控制无关:
- 属性设为
writable: false不影响isExtensible结果 - 原型链上新增属性不影响该对象自身的可扩展性判断
- 它无法检测嵌套对象——子对象是否可扩展需单独调用
- 对
null或原始值调用会报错,必须确保参数是对象类型
搭配不可逆方法才构成完整流程
真正控制可变性的是另外三个方法,isExtensible 只是“观察员”:
-
Object.preventExtensions(obj)→ 进入“待审核”态:可改值,不可加字段 -
Object.seal(obj)→ 进入“已确认”态:可改值,不可删/重配字段 -
Object.freeze(obj)→ 进入“归档”态:所有操作禁止
每次调用上述任一方法后,Object.isExtensible(obj) 都会稳定返回 false。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!










