JavaScript中enumerable属性对对象遍历的影响

受enumerable控制的操作包括for...in循环、Object.keys()、JSON.stringify()和Object.assign();不受影响的有直接属性访问、Object.getOwnPropertyNames()、Object.getOwnPropertyDescriptors()及Reflect.ownKeys()。JavaScript中,enumerable(可枚举性)决定了一个属性是否会在 for...in 循环、Object.keys()、JSON.stringify() 等操作中被访问到。它不控制属性能否被读写,只影响"是否出现在遍历结果里"。哪些操作受 enumerable 控制?以下方法会跳过 enumerable: false 的属性:for...in 循环(只遍历自身 + 原型链上可枚举的属性) Object.keys(obj)(只返回自身可枚举属性名) JSON.stringify(obj)(忽略不可枚举、函数、undefined、Symbol 属性) Object.assign({}, obj)(只拷贝自身可枚举属性)哪些操作不受 enumerable 影响?这些操作能访问到所有属性(包括不可枚举的),只要它们存在且可访问:直接通过点号或方括号访问:obj.prop 或 obj"prop" Object.getOwnPropertyNames(obj)(返回所有自身属性名,含不可枚举) Object.getOwnPropertyDescriptors(obj)(返回所有自身属性描述符) Reflect.ownKeys(obj)(返回所有自身键,含不可枚举和 Symbol)如何设置或修改 enumerable?只能通过 Object.defineProperty() 或 Object.defineProperties() 显式设置: Vozo Vozo是一款强大的AI视频编辑工具,可以帮助用户轻松重写、配音和编辑视频。

相关推荐
我不介意孤独13 分钟前
04-记忆系统为什么向量数据库不够用
数据库·人工智能·资源隔离·agent infra
CTA终结者15 分钟前
期货开仓前保证金够吗:get_account 可用与占用字段对照
python·区块链
开源量化GO17 分钟前
夜盘白盘衔接几分钟误下单:天勤交易时段与行情过滤
python·区块链
J-Tony1120 分钟前
【JVM】三色标记法
java·jvm·算法
AOwhisky35 分钟前
MySQL 学习笔记(第六期):MySQL 备份与恢复
运维·数据库·笔记·学习·mysql·云计算
辣椒思密达1 小时前
Python公开数据采集实战:如何解决请求高频拦截与Session会话中断问题
开发语言·python
qq21084629531 小时前
【数据库】TDengine 清理旧数据
数据库·oracle·tdengine
j_xxx404_1 小时前
MySQL表操作硬核解析:从 CREATE TABLE 到磁盘文件、ALTER TABLE 与 DDL 风险
运维·服务器·数据库·c++·mysql·adb·ai
Albart5751 小时前
Python 实战教程:用 30 分钟学会解决真实问题
开发语言·python
数据库小学妹1 小时前
PostgreSQL迁移到国产数据库怎么做?评估、改造、上线全流程实操指南
数据库·经验分享·postgresql·dba