[姆咪] 這裡有人懂js的垃圾回收機制嗎
雖然我覺得我應該是這裡寫過最多行這糞語言的人了= =
但還是問一下
比方說,底下這個obj變數什麼時候會被收集掉?
let obj = { a: 1 };
function foo(o) {
return () => {
console.log(o.a);
};
}
let bar = foo(obj);
bar(); // 這行應該印出 "1"
obj = null; // 這裡應該還沒被收集,因為它還被bar引用著
bar(); // 仍然可以印出 "1"
bar = null;
問題來了!!!
請問,上面的最後一行會把obj的記憶體釋放掉嗎?
理論上,從那行之後,我應該不再可能使用那個變數了
但垃圾蒐集機制有辦法辨別這件事嗎?
求解 感恩
--
~$ sudo make love -j4
Error: 女朋友.c: 沒有此一檔案或目錄
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.169.205.147
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1555159747.A.55E.html
推
04/13 20:50,
6年前
, 1F
04/13 20:50, 1F
→
04/13 20:50,
6年前
, 2F
04/13 20:50, 2F
→
04/13 20:50,
6年前
, 3F
04/13 20:50, 3F
推
04/13 20:51,
6年前
, 4F
04/13 20:51, 4F
→
04/13 20:51,
6年前
, 5F
04/13 20:51, 5F
→
04/13 20:51,
6年前
, 6F
04/13 20:51, 6F
噓
04/13 20:51,
6年前
, 7F
04/13 20:51, 7F
→
04/13 20:52,
6年前
, 8F
04/13 20:52, 8F
→
04/13 20:52,
6年前
, 9F
04/13 20:52, 9F
噓
04/13 20:54,
6年前
, 10F
04/13 20:54, 10F
→
04/13 21:00,
6年前
, 11F
04/13 21:00, 11F
→
04/13 21:00,
6年前
, 12F
04/13 21:00, 12F
→
04/13 21:00,
6年前
, 13F
04/13 21:00, 13F
推
04/13 21:01,
6年前
, 14F
04/13 21:01, 14F
→
04/13 21:02,
6年前
, 15F
04/13 21:02, 15F
→
04/13 21:02,
6年前
, 16F
04/13 21:02, 16F
→
04/13 21:07,
6年前
, 17F
04/13 21:07, 17F
→
04/13 21:10,
6年前
, 18F
04/13 21:10, 18F
→
04/13 21:12,
6年前
, 19F
04/13 21:12, 19F
→
04/13 21:16,
6年前
, 20F
04/13 21:16, 20F
→
04/13 21:17,
6年前
, 21F
04/13 21:17, 21F
噓
04/13 21:24,
6年前
, 22F
04/13 21:24, 22F
→
04/13 21:38,
6年前
, 23F
04/13 21:38, 23F
→
04/13 21:38,
6年前
, 24F
04/13 21:38, 24F
→
04/13 21:48,
6年前
, 25F
04/13 21:48, 25F