為什么console.log將 WeakSet 顯示為<items unknown>?[13:37:11] [~] nodeWelcome 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> }
1 回答

www說
TA貢獻1775條經驗 獲得超8個贊
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 }));
添加回答
舉報
0/150
提交
取消