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助手

相关推荐
2301_812539671 小时前
CSS如何处理响应式侧边栏宽度_通过CSS变量实现自动收缩
jvm·数据库·python
老纪1 小时前
SQL关联查询中处理多对多关系的方案_使用中间表进行JOIN
jvm·数据库·python
西洼工作室1 小时前
fetch+ReadableStream实现SSE推送实时踢人下线
前端·python·全栈
阿正呀1 小时前
如何清洗SQL输入数据_使用框架内置的ORM处理数据交互
jvm·数据库·python
2301_812539671 小时前
c++怎么读取安卓系统Assets目录下的资源文件流数据【实战】
jvm·数据库·python
小糖学代码1 小时前
LLM系列:2.pytorch入门:10.划分训练集与测试集(sklearn.model_selection)
人工智能·python·深度学习·神经网络·学习·sklearn
QH_ShareHub1 小时前
从 R 到 Python:数据科学生态的“双语”对照手册
开发语言·python·r语言
dishugj1 小时前
HANA数据库常用命令总结
java·前端·数据库