我的无引用javascript对象在哪里存在,存在多长时间?
SomeObj对象在什么时候被垃圾收集?一旦不再使用,它就有资格被垃圾收集。 这意味着在您的案例中,在构造函数调用之后我的无引用javascript对象在哪里存在,存在多长时间?,javascript,garbage-collection,Javascript,Garbage Collection,SomeObj对象在什么时候被垃圾收集?一旦不再使用,它就有资格被垃圾收集。 这意味着在您的案例中,在构造函数调用之后 实际发生的及时程度取决于实现细节。如果遇到GC问题,您需要深入研究特定的Javascript引擎。一旦不再使用它,它就有资格进行垃圾收集。 这意味着在您的案例中,在构造函数调用之后 实际发生的及时程度取决于实现细节。如果遇到GC问题,需要深入研究特定的Javascript引擎。没有从任何地方引用的对象在程序视图中根本不“存在”。它在内存中的驻留时间取决于解释器的垃圾收集特性,以
实际发生的及时程度取决于实现细节。如果遇到GC问题,您需要深入研究特定的Javascript引擎。一旦不再使用它,它就有资格进行垃圾收集。 这意味着在您的案例中,在构造函数调用之后
实际发生的及时程度取决于实现细节。如果遇到GC问题,需要深入研究特定的Javascript引擎。没有从任何地方引用的对象在程序视图中根本不“存在”。它在内存中的驻留时间取决于解释器的垃圾收集特性,以及何时/是否需要收集它
在您的特定情况下,对象在创建后立即有资格进行垃圾收集,并且表达式生成的引用未被使用(例如,在赋值中)。事实上,对象可能根本就不会被创建,优化编译器可以很容易地全部创建—它没有副作用,也没有返回值。没有从任何地方引用的对象从程序的视图中根本不“存在”。它在内存中的驻留时间取决于解释器的垃圾收集特性,以及何时/是否需要收集它
在您的特定情况下,对象在创建后立即有资格进行垃圾收集,并且表达式生成的引用未被使用(例如,在赋值中)。事实上,一开始可能根本无法创建对象,优化编译器可以很容易地创建一个对象-它没有副作用,也没有返回值。在执行settimout的回调之后。好的。。那么为什么我仍然可以使用SomeObj对象呢?假设SomeObj引用一个DOM元素,如下所示:var o=this$(#foo”).click(function(){$(this.html(++o.i)});你评论中的第二个例子与问题中的例子有什么关系?当然,其中的
o
不会被垃圾收集,因为它仍在使用中(与问题中的newsomeobj
不同)。我无法确定对象何时被垃圾收集,因为我不知道对象存在于何处。第一个示例不清楚。在执行settimout的回调之后。确定。。那么为什么我仍然可以使用SomeObj对象呢?假设SomeObj引用一个DOM元素,如下所示:var o=this$(#foo”).click(function(){$(this.html(++o.i)});你评论中的第二个例子与问题中的例子有什么关系?当然,其中的o
不会被垃圾收集,因为它仍在使用中(与问题中的newsomeobj
不同)。我无法确定对象何时被垃圾收集,因为我不知道对象存在于何处。第一个例子并不清楚。
var SomeObj = function() {
this.i = 0;
};
setTimeout(function() {
new SomeObj; // I mean this object
}, 0);