问题
那么多面经
在说引用计数, 循环引用会无法gc,而以我对jvm python等多个有gc语言的了解,js 再怎么也不至于就是个引用计数
否则循环引用早爆了
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| function foo() { var a = {}; function bar() { console.log(a); }; a.fn = bar; return bar; };
let wm1=new WeakMap();function f(){ let b={}; let a={}; a.x = a; wm1.set(a,1); wm1.set(b,2); wm1.set(foo(),3); wm1.set(wm1,4); console.log(wm1.has(a)); console.log(wm1.has(b)); };f();console.log(wm1);
|
chrome performance 点垃圾桶 进行gc
, 然后再执行
狗都知道循环引用也可以gc掉, 只要没有持有的引用链跟上来.
我不理解几行代码就可以验证的事情可以一传十,十传百. 真的面试是文科靠背诵, 不靠逻辑是吧。