使用 Symbol
作为Object
的键值,默认会隐藏,这个在mdn-术语-symbol 中有看到,但是在 mdn-propertyIsEnumerable 中看到这样一句话
每个对象都有一个propertyIsEnumerable
方法。此方法可以确定对象中指定的属性是否可以被for...in
循环枚举
虽然Symbol
可以通过propertyIsEnumerable
输出为true
,但是为什么不能通过 for...in
来输出呢?
let a = {};
let b = Symbol('key');
a[b] = 'b';
console.log(a.propertyIsEnumerable(b)); // true
for (let i in a) {
console.log(i) // 但是这里却不会输出 `Symbol`
}
Symbols 与
for...in
迭代好像不能直接定位到位置。。。 你可以先打开链接,再搜下我的这个标题, 简单的说就是