簡體   English   中英

如果仍然存在對對象之一的引用,該對象可以被垃圾回收嗎?

[英]Can an object be garbage collected if a reference to one of it's members still exists?

在Javascript中,據我了解,當頁面上不存在對項目的引用時,便會對其進行垃圾回收。

var obj = {
   arr: [1,2,3]
};
var arr = obj.arr;
obj = "hello";

在上面的代碼中,我替換了對初始obj對象的引用。 我不再有對該對象的任何引用。 但是,我確實引用了該對象上的數組。 該對象是否一直保留到未引用arr為止? 還是可以將其收集為垃圾?

可以收集作為“ obj”值的對象,但它是與作為“ arr”值的對象(數組)分開的對象。 那一個不會被收集。

可以獨立於其屬性引用的對象來收集對象。

(嚴格來說,這一切都取決於收集器的詳細信息,但是由於屬性值不是包含對象的一部分,因此得知能夠做到這一點的我真的感到很驚訝。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM