js中没有很多引用类型的区分,不像java中,规定了很多引用类型,还有软引用和虚引用
    js中对于引用可达的都是强引用,只有在引入了WeakMap 和 WeakSet 之后,对于他们只观察他们所引用的健
    比如

    1. const wm = new WeakMap();
    2. {
    3. const ref = {};
    4. const metaData = 'foo';
    5. wm.set(ref, metaData);
    6. wm.get(ref))
    7. // 返回 metaData
    8. }
    9. // 在这个块范围内,我们已经没有对 ref 对象的引用。
    10. // 因此,虽然它是 wm 中的键,我们仍然可以访问,但是它能够被垃圾回收。

    只要代码中没有其他代码指向这个键,那它就有可能会被GC掉,在WeakMap中访问不到。所以WeakMap 和 WeakSet 存储的内容是弱引用的