我必须自己销毁实例吗?…如果我不给他们分配一个变量…他们会自动消失吗?

new ImageUploadView();


var Iu = ImageUploadView();

最佳答案

如果javascript中没有对某个对象的引用,垃圾收集器将对其进行清理。
垃圾收集器的工作方式是查找没有人引用的javascript对象。如果没有人引用它,那么就不能再使用它,因此可以删除它并回收它占用的内存。另一方面,如果任何javascript实体仍有对该对象的引用,则该对象仍在“使用中”,无法删除。
在第一个代码示例中:

new ImageUploadView();

除非对象的构造函数将this指针存储到其他变量或对象中,或创建导致保留对该对象的引用的闭包,否则将不存在对该新对象的引用,并且垃圾回收器将清除该对象。
如果您是第二个代码示例:
var Iu = ImageUploadView();

只要Iu变量存在并保持在范围内,它就包含了ImageUploadView()函数返回的任何内容。注意,第二个例子,只是执行一个函数并存储它的值。它不一定创造任何东西。如果ImageUploadView()只返回true,那么这就是Iu变量将包含的全部内容。

10-05 20:52