簡體   English   中英

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

[英]ES6: console.log on WeakSet gives <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> }

node-js 團隊認為很難正確實現它。 這是問題: https://github.com/nodejs/node/issues/19001

所以這意味着 WeakSet 可以正常工作但 console.log 將始終 output 為空的 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 }));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM