当前位置: 首页 > 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.dtcms.com/a/243461.html

相关文章:

  • 智谱的AI Agent :CoCo
  • 快速了解JVM的GC历史
  • 国产linux系统(银河麒麟,统信uos)使用 PageOffice实现word 文档中的table插入新行并赋值
  • 文件加密软件推荐,2025文档加密系统的最新排名
  • EtherCAT至TCP/IP异构网络互联:施耐德M580 PLC对接倍福CX5140解决方案
  • HTML原生日期插件增加周次显示
  • 审计效率升级!Word一键批量给数字添加千位分隔符
  • 科技评论:Jim Keller 的“反向”战略:RISC-V 成为中国应对美国芯片封锁的关键武器
  • AnythingLLM配置Milvus后,上传文档提示向量数据库标识符错误的解决办法
  • Google reCAPTCHA实现
  • milvus 总结
  • Electron-vite【实战】MD 编辑器 -- 编辑区(含工具条、自定义右键快捷菜单、快捷键编辑、拖拽打开文件等)
  • 微服务架构中的 Kafka:异步通信与服务解耦(二)
  • 0611的
  • Intel Boot Guard
  • RAG的5种高效切分策略:提升检索增强生成效果的关键
  • Linux进程管理:创建,终止,等待
  • Linux611 libvirtb ;FTP vsftpd.conf部分配置文件
  • C#简单线程启动的几种方法总结
  • npm包 本地测试流程
  • 为 Nginx 配置 HTTPS(以 n8n 为例)完整教程【CentOS 7】
  • 时序数据库IoTDB数据模型建模实例详解
  • Java使用Selenium反爬虫优化方案
  • Nuxt3 中使用 pnpm 安装的 NuxtImg 使用会提示找不到图片
  • Linux(Centos 7.6)命令详解:whoami
  • 时序数据库Influxdb3 core安装
  • 【指针】(适合考研、专升本)
  • 基础篇:5. HTTP/2 协议深度解析
  • 递归,回溯,DFS,Floodfill,记忆化搜索
  • 【编译工具】(自动化)AI 赋能的自动化测试工具:如何让测试效率提升 500% 并实现智能质检?