ES6:WeakSet 上的 console.log 给出 <item unknown>

为什么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> }


米琪卡哇伊
浏览 122回答 1
1回答

www说

node-js 团队认为很难正确实现它。这是问题:https ://github.com/nodejs/node/issues/19001这意味着 WeakSet 可以正常工作,但 console.log 将始终输出一个空的 WeakSet如果您仍想检查 WeakMap,您可以使用 utils inspect 来做到这一点:const { inspect } = require('util');let student1 = { name: 'James', age: 26 };let student2 = { name: 'Julia', age: 27 };const weakSet = new WeakSet([student1, student2]);console.log(inspect(weakSet, { showHidden: true }));
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript