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

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)); 

相关文章:

  • 海康对接摄像头
  • Docker快速构建并启动Springboot程序,快速发布和上线/
  • 前端基础知识ES6系列 - 03(数组新增了哪些扩展)
  • 论文阅读:强化预训练
  • html打印合同模板
  • 人工智能AI
  • 《零基础读懂新能源汽车》——V2G/电池梯次利用/氢能源生态级技术拆解与商业预言
  • Java八股文——Spring「SpringBoot 篇」
  • 全连接层和卷积层
  • 学习threejs,使用TSL计算粒子鼠标特效
  • 【AI时代速通QT】第一节:C++ Qt 简介与环境安装
  • uniapp 腾讯云 COS 访问控制实战(细粒度权限管理)
  • PHP7+MySQL5.6 雪里开简易预约制访客管理系统V1.0
  • IGBT(绝缘栅双极型晶体管)简介
  • Vue3 + TypeScript + Element Plus 表格行按钮不触发 row-click 事件、不触发勾选行,只执行按钮的 click 事件
  • 基于开源AI智能名片链动2+1模式S2B2C商城小程序的新零售融合路径研究
  • elementui使用Layout布局-对齐方式
  • 零基础玩转物联网-串口转以太网模块如何快速实现与HTTP服务器通信
  • element-ui 的el-table,多选翻页后,之前选择的数据丢失问题处理
  • Flutter - 原生交互 - 相机Camera - 02
  • access 网站数据库/google海外推广
  • 百度推广网站建设/seo专业课程
  • 如何做求婚网站/电脑系统优化软件排行榜
  • 独立商城网站建设/百度投诉平台在哪里投诉
  • 网站管理后台地址怎么查询/湖南做网站的公司
  • 花店网站模板 html/sem竞价推广代运营收费