为什么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上下文:我在WeakSet的ES6中遇到了下面的例子。
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> }发布于 2020-06-21 18:03:44
节点-js团队决定很难正确地实现这一点。下面是问题:https://github.com/nodejs/node/issues/19001
这意味着WeakSet工作正常,但是console.log总是输出一个空的WeakSet
如果还想检查WeakMap,可以使用utils检查:
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 }));https://stackoverflow.com/questions/62502224
复制相似问题