当前位置: 首页 > news >正文

Object.defineProperty()详解

Object.defineProperty() 是 JavaScript 中用于直接在对象上定义新属性或修改现有属性的核心方法,它提供了对属性行为的精细控制(如可枚举性、可写性等)。以下是详细说明:


一、基本语法

Object.defineProperty(obj, prop, descriptor)
  • obj: 目标对象
  • prop: 要定义或修改的属性名(String 或 Symbol)
  • descriptor: 属性描述符对象(核心配置)

二、属性描述符(descriptor)

描述符分为两类:数据描述符存取描述符,二者不能混用。

1. 数据描述符(直接操作值)
  • value: 属性值(默认 undefined
  • writable: 是否可修改(默认 false
  • enumerable: 是否可枚举(如出现在 for...in 循环中,默认 false
  • configurable: 是否可修改描述符或删除属性(默认 false
2. 存取描述符(通过 getter/setter 控制)
  • get(): 获取属性值时调用的函数(默认 undefined
  • set(newValue): 设置属性值时调用的函数(默认 undefined
  • enumerableconfigurable(同上)

⚠️ 注意:若同时使用 value/writableget/set 会抛出错误。


三、使用示例

1. 基础属性定义
const obj = {};
Object.defineProperty
http://www.xdnf.cn/news/979903.html

相关文章:

  • React 18 渲染机制优化:解决浏览器卡顿的三种方案
  • AX620Q上模型部署流程
  • Spring Security是如何完成身份认证的?
  • BUG调试案例十四:TL431/TL432电路发热问题案例
  • Python训练营打卡DAY51
  • 机器学习核心概念速览
  • 基于ElasticSearch的法律法规检索系统架构实践
  • livetalking实时数字人多并发
  • uni-app项目实战笔记1--创建项目和实现首页轮播图功能
  • 告别excel:AI 驱动的数据分析指南
  • elementui使用Layout布局-对齐方式
  • input+disabled/readonly问题
  • Vue3 + TypeScript + Element Plus 表格行按钮不触发 row-click 事件、不触发勾选行,只执行按钮的 click 事件
  • Explore Image Deblurring via Encoded Blur Kernel Space论文阅读
  • 时序数据库IoTDB数据模型建模实例详解
  • Jmeter中变量如何使用?
  • MySQL 三表 JOIN 执行机制深度解析
  • 基础数论一一同余定理
  • Qt 动态插件系统QMetaObject::invokeMethod
  • 【docker】docker registry搭建私有镜像仓库
  • 开源 java android app 开发(十二)封库.aar
  • SD-WAN 技术如何助力工业物联网(IIoT)数据传输?深度解析传统方案对比与应用实践
  • Chrome 优质插件计划
  • 智慧农业物联网实训中心建设方案
  • 趋境科技英特尔生态沙龙举办,打通大模型私有化“最后一公里”
  • 当简约美学融入小程序 UI 设计:开启高效交互新篇
  • 【Java学习日记38】:C语言 fabs 与 Java abs 绝对值函数
  • element plus的el-form重置无效
  • CavityPlus: 北大团队研发的综合性蛋白质结合位点检测及功能分析网络服务器
  • 【python】预测投保人医疗费用,附insurance.csv数据集