为什么WeakSet不能与Symbol一起使用?

时间:2015-07-05 00:19:23

标签: javascript ecmascript-6

为什么.add() Symbol WeakSet var ws = new WeakSet(); var sym = Symbol(); ws.add(sym); //error 无法进行{{1}}?

{{1}}

1 个答案:

答案 0 :(得分:2)

只有对象可以是WeakSet成员,但符号是基元。如果你真的需要在WeakSet中存储一个符号,你可以将它包装在一个对象中:

let ws = new WeakSet();
let symbol = Symbol();
let wrapped = Object(symbol);
ws.add(wrapped);