JavaScript中configurable对属性删除与修改的控制

configurable 是属性描述符中控制属性可配置性的布尔值:configurable: false 时属性不可删除、不可修改描述符(writable 从 true 改 false 除外)、不可转换属性类型;默认值因创建方式而异,字面量赋值为 true,defineProperty 未指定时为 false。在 JavaScript 中,configurable 是属性描述符(property descriptor)中的一个布尔值,它直接决定该属性能否被删除、能否修改其描述符(比如 writable、enumerable、configurable 本身),以及能否从数据属性转为访问器属性(或反之)。configurable: false 时无法删除属性当一个属性的 configurable 为 false,调用 delete 操作符将失败(严格模式下抛出 TypeError,非严格模式下静默返回 false):const obj = {};Object.defineProperty(obj, 'name', { value: 'Alice', configurable: false});delete obj.name; // false(非严格模式)或 TypeError(严格模式)console.log(obj.name); // 'Alice'configurable: false 时无法修改属性描述符一旦 configurable 设为 false,后续对同一属性调用 Object.defineProperty() 修改任何描述符(包括 writable、enumerable、configurable 自身)都会报错,除非是把 writable: true 改为 false(这个例外仅适用于数据属性):Object.defineProperty(obj, 'name', { writable: false }) ? 允许(前提是原先是 writable: true) Object.defineProperty(obj, 'name', { enumerable: true }) ? 报错 Object.defineProperty(obj, 'name', { configurable: true }) ? 报错(不可逆)configurable 控制属性类型转换只有 configurable: true 的属性,才能在数据属性和访问器属性之间切换。例如: RedClaw 百度推出的手机端万能AI Agent助手

相关推荐
benchmark_cc5 小时前
如何用 Python + QuantDash 快速构建高胜率“配对交易(Pairs Trading)”策略?
开发语言·人工智能·python·pandas·量化交易·quantdash
踏月的造梦星球5 小时前
DMDPC 学习:架构、部署、运维与调优
运维·数据库·学习·架构
韩楚风6 小时前
【参天引擎】事务生命周期 / MVCC / Undo / ACID / 分布式事务 功能域整体解析
数据库·分布式·mysql·架构·cantian
renhongxia16 小时前
世界模型,是“空中楼阁”还是AGI的“最后一块拼图”?
运维·服务器·数据库·人工智能·算法·agi
程序员无隅7 小时前
Coding Agent 为什么压缩上下文后还能继续工作?上下文模块设计拆解
java·开发语言·数据库
Python+997 小时前
Java 枚举类(Enum)详解:从基础到高级应用
java·开发语言·python
愿做无知一猿7 小时前
Nacos连接MySQL异常?DataGrip竟成救星
数据库·mysql
G.O.G.O.G7 小时前
LeetCode SQL 从入门到精通(MySQL)06(上)
数据库·sql·mysql·leetcode
dunge20268 小时前
2026年7月最新ChatGPT Plus / Pro 与 Codex:当 AI Agent 最新5.6版本来袭,必须理解事务、幂等与补偿
开发语言·人工智能·python
研究员子楚8 小时前
GEO行业发展标准体系白皮书V2.0-第10卷 · 全球篇:跨国标准协同与全球品牌语义治理框架
数据库·人工智能·microsoft·架构·geo