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

enumerable 和 configurable 属性详解

enumerableconfigurable 属性详解

在 JavaScript 中,Object.defineProperty() 方法的配置项 enumerableconfigurable 控制着对象属性的基本行为。下面我将详细解释这两个关键配置项。

可视化对比表

特性enumerableconfigurable
控制内容属性是否可枚举属性是否可配置
默认值falsefalse
影响操作for...inObject.keys()JSON.stringify()delete、属性重定义、特性修改
设置为 true属性出现在枚举操作中属性可删除、可修改特性
设置为 false属性在枚举操作中不可见属性不可删除、特性不可修改
在 Vue 中的应用确保属性在模板渲染中可见允许 Vue 动态修改响应式属性

详细说明

1. enumerable(可枚举性)

enumerable 控制属性是否出现在对象的属性枚举中。

  • 默认值false

  • 设置为 true

    • 属性会出现在 for...in 循环中
    • 属性会被 Object.keys() 包含
    • 属性会被 JSON.stringify() 序列化
    • 属性会被 Object.assign() 和扩展运算符 (...) 复制
  • 设置为 false

    • 属性不会出现在上述操作中
    • 但仍可通过直接访问属性名获取 (obj.property)
    • 可用 Object.getOwnPropertyNames() 获取
const obj = {};// 添加可枚举属性
Object.defineProperty(obj, 'visible', {value: 'I am visible',enumerable: true
});// 添加不可枚举属性
Object.defineProperty(obj, 'hidden', {value: 'I am hidden',enumerable: false
});console.log(Object.keys(obj)); // ['visible']
console.log(JSON.stringify(obj)); 
http://www.xdnf.cn/news/13524.html

相关文章:

  • Vision Prompt Tune(视觉提示微调)
  • 如何在同一台电脑上安装并运行多个版本的 IntelliJ IDEA
  • Redis核心技术与实战指南
  • 品牌形象全面升级|Apache Fory:破界新生,开启高性能序列化新纪元
  • 单片机 - STM32 非阻塞式编程详解:以 LED 和按键为例(附超详细寄存器级代码)
  • 康谋方案 | 高精LiDAR+神经渲染3DGS的完美融合实践
  • html转markdown
  • 【JavaSE】IO流学习笔记
  • 让Python成为你的网站引擎:Django全栈开发初体验!!!
  • 蓝桥杯等竞赛场景下 C++ 的时间与空间复杂度深度解析​
  • 【论文解读】Search-o1:用 Agentic 搜索增强推理模型
  • Oracle 的AHF (Automatic Health Framework) 工具
  • java实现RabbitMQ消息发送和接收功能(包含测试)
  • 日语学习-日语知识点小记-进阶-JLPT-真题训练-N2阶段(1):单词部分练习
  • Unity3D SRP Batcher原理分析
  • DEM 地形分析与水文建模:基于 ArcGIS 的流域特征提取
  • Android 10.0 勿扰模式开启关闭功能实现
  • DevOps软件开发流程规范
  • 抖音授权登录-获取用户授权调用凭证
  • MySQL进阶之索引(1)索引结构分类语法和SQL性能分析
  • Guava常用工具类使用教程
  • 使用OpenCV和Python进行图像掩膜与直方图分析
  • Java基于局域网的聊天室系统设计与实现,附源码+论文
  • ACS的ExtendedSegmentArc1 方法说明
  • 代理模式:AOP 切面编程的底层实现基础
  • Hello Robot发布Stretch3机器人高保真模拟平台-Stretch MuJoCo v0.5-涵盖数百种Robocasa厨房应用测试场景
  • 零基础设计模式——行为型模式 - 中介者模式
  • 使用Jmeter做功能测试有哪些优点?
  • C++ 中的 iostream 库:cin/cout 基本用法
  • Python训练第五十天