我必须自己销毁实例吗?…如果我不给他们分配一个变量…他们会自动消失吗?
new ImageUploadView();
对
var Iu = ImageUploadView();
最佳答案
如果javascript中没有对某个对象的引用,垃圾收集器将对其进行清理。
垃圾收集器的工作方式是查找没有人引用的javascript对象。如果没有人引用它,那么就不能再使用它,因此可以删除它并回收它占用的内存。另一方面,如果任何javascript实体仍有对该对象的引用,则该对象仍在“使用中”,无法删除。
在第一个代码示例中:
new ImageUploadView();
除非对象的构造函数将
this
指针存储到其他变量或对象中,或创建导致保留对该对象的引用的闭包,否则将不存在对该新对象的引用,并且垃圾回收器将清除该对象。如果您是第二个代码示例:
var Iu = ImageUploadView();
只要
Iu
变量存在并保持在范围内,它就包含了ImageUploadView()
函数返回的任何内容。注意,第二个例子,只是执行一个函数并存储它的值。它不一定创造任何东西。如果ImageUploadView()
只返回true
,那么这就是Iu
变量将包含的全部内容。