Если в javascript нет ссылки на объект, сборщик мусора очистит его.
Способ работы сборщика мусора заключается в том, что он ищет объекты javascript, на которые никто не ссылается. Если никто не ссылается на него, его нельзя использовать снова, поэтому его можно удалить и освободить занятую память. С другой стороны, если какой-либо объект javascript все еще имеет ссылку на объект, он все еще «используется» и не может быть удален.
В вашем первом примере кода:
new ImageUploadView();
если конструктор объекта не хранит указатель this
в какой-либо другой переменной или объекте или не создает какое-либо замыкание, которое приводит к удержанию ссылок на объект, тогда не будет никакой ссылки на этот новый объект, и он будет очищается сборщиком мусора.
Если вы второй пример кода:
var Iu = ImageUploadView();
, пока переменная Iu
существует и остается в области видимости, она будет содержать все, что возвращает функция ImageUploadView()
. Обратите внимание, что второй пример - это просто выполнение функции и сохранение ее значения. Это не обязательно создает что-либо. Если ImageUploadView()
просто возвращает true
, то это все, что будет содержать переменная Iu
.