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视频编辑工具,可以帮助用户轻松重写、配音和编辑视频。

相关推荐
这个DBA有点耶37 分钟前
DELETE没删多少数据,表却越来越大——InnoDB删除空洞与页合并失效的根因
数据库·mysql·代码规范
卷无止境2 小时前
一人公司的全栈选型指南:让 AI Agent 写得快,也让生意跑得稳
后端·python
ly76894 小时前
PostgreSQL 备份恢复策略:pg_basebackup、WAL 归档与 PITR 在企业 Java 系统中的落地
java·数据库·postgresql·pitr·pg_basebackup·wal 归档
滴啦嘟啦哒4 小时前
【具身笔记】【π0.5 微调与仿真】五、在MuJoCo中实现可视化仿真
笔记·python·vla·具身
全栈练习生4 小时前
AI安全与红队测试
python·ai
小羊没烦恼!5 小时前
Ajax与JSON的一些总结
android·java·前端·数据库·mysql·算法·okhttp
费曼学习法5 小时前
把「发送成功」当「送达」?我排查 IM 长消息被静默吞掉的完整过程
python·ai编程·自动化运维
鸽鸽程序猿5 小时前
【项目】【在线判题系统】b端题目增删改
开发语言·python
注塑机数据采集联网5 小时前
如何解决注塑机数据采集联网对接MES系统数据WiFi传输数据不稳问题
大数据·数据库·物联网·数据挖掘·数据分析
Lhappy嘻嘻5 小时前
读懂 JVM:内存模型、类加载机制、分代回收
java·开发语言·jvm