废话不多说,直接上代码 let a = new Map() let b = new WeakMap() function abc () { const foo = {girl: 25} const boo = {girl: 26} a.set(foo, 1) b.set(boo, 2) } abc() 执行代码后发现,foo在内存上的值并没有被js的垃圾回收机制回收,而boo则被垃圾回收机制给回收掉了。 由此可见,weakmap的key是弱引用,是不影响js的垃圾回收机制的。