【发布时间】:2020-06-21 17:38:59
【问题描述】:
为什么console.log 将WeakSet 显示为<items unknown>?
[13:37:11] [~] node
Welcome to Node.js v14.4.0.
Type ".help" for more information.
> let student1 = { name: 'James', age: 26 };
undefined
> let student2 = { name: 'Julia', age: 27 };
undefined
> const roster = new WeakSet([student1, student2]);
undefined
> console.log(roster);
WeakSet { <items unknown> }
undefined
上下文:我在 ES6 中的 WeakSet 上遇到了以下示例。
let student1 = { name: 'James', age: 26 };
let student2 = { name: 'Julia', age: 27 };
const roster = new WeakSet([student1, student2]);
console.log(roster);
这个例子表明它应该打印
WeakSet {Object {name: 'Julia', age: 27}, Object {name: 'Richard', age: 31}}
但在节点 v14.4.0 中它会打印
WeakSet { <items unknown> }
【问题讨论】:
-
你在哪里找到这个例子?您在 MDN 上链接的页面注释“集合中没有存储当前对象的列表。WeakSets 不可枚举。”
-
@Bergi 这是我正在查看的Udacity ES6 course 的一部分。这是一门免费课程,但我认为该链接仅在您登录后才有效。我想知道 WeakSet 的用例,而您的 answer to another question 帮助了。现在我确信我不能(也不应该)枚举/循环遍历 WeakSet。谢谢。