VBScript гарантирует, что GC будет запускаться после каждой строки, поэтому, если вы создаете объект и не сохраняете ссылку, его деструктор будет вызван в конце строки. Это позволяет вам сделать ряд интересных вещей, одна из которых имитирует необязательные аргументы:
with foo(mandatoryArg)
.optArg = 42
end
Другой вариант позволяет использовать удобный синтаксис компоновщика:
with Schema.define("Foo")
.attr "name", String
with .attr "key", String
.lengthEquals(10)
end
end
В этом примере define и attr возвращают объекты, которые завершают определения схемы и атрибутов в деструкторе.
Я назвал временный объект эфемероном, но мне было интересно, существует ли ранее существующий термин для таких конструкций. Кто-нибудь видел это в другом месте?