javascript - 从对象复制符号属性
问题描述
const c = {};
const s = Symbol()
c[s] = true;
如何查看 c 的属性,包括符号属性?如果我做:
for(const [k,v] of Object.entries(c)){
console.log(k,v);
}
默认情况下不会获得我的不可枚举属性(如符号)?我试过这个:
for(const k of Object.getOwnPropertyNames(c)){
console.log(k,c[k]);
}
但该列表也是空的。
解决方案
您可以使用稍微不同的方式访问它们:
let c = {
[Symbol("a")]: true
}
const keys = Reflect.ownKeys(c);
这相当于
const keys = Object.getOwnPropertyNames(c).concat(Object.getOwnPropertySymbols(c))
该Object.getOwnPropertyNames()
方法返回直接在给定对象上找到的所有属性(可枚举或不可枚举)的数组。
该Object.getOwnPropertySymbols()
方法返回直接在给定对象上找到的所有符号属性的数组。
推荐阅读
- prolog - Prolog-旅行路径和时间
- snowflake-cloud-data-platform - TRY_TO_DATE 与模式?
- symfony - Symfony 5 如何使用 jQuery ui 标签显示多个 Google 图表
- python - Selenium 链接请求
- java - Java DataInputStream readAllBytes 为空?
- javascript - 带进度条的 24 小时倒数计时器
- c++ - 如何在 C++ 中将带有空格的字符数组写入二进制文件?以及如何阅读它们?
- c# - 使用 LINQ 遍历列表加一个值
- flutter - Dart/fultter:如何在模拟器的本地主机上显示来自 API 的图像
- reactjs - TypeError无法读取nativebase未定义的属性“样式”