В версии 1 объявление:
var tempX:int
определяет переменную, которая длится только до той итерации цикла for (или for-each), в которой она находится. Каждая итерация tempX
определена,получает значение из объекта Enemy
и в конце оно оставляется для сборки мусора.
В версии 2 вы ссылаетесь на две переменные, прикрепленные к объекту Enemy
, на который ссылается временная переменная с именем tempEnemy
.
В обеих версиях ссылка на объект Enemy
, tempEnemy, переназначается на объект Enemy
следующей итерации.
Каждый метод имеет свои преимущества.С точки зрения памяти, версия 2, вероятно, лучше, поскольку она изменяет существующую переменную снова и снова, а не создает новую переменную, которая отбрасывается в конце каждой итерации.С другой стороны, версия 1 не требует, чтобы вы определяли oldX
в своих переменных класса, что часто может привести к грязному виду без таких переменных.
Лучшие практики с кодом основаны на (а) работать с другими программистами, которым необходимо уметь читать и понимать код, и (б) выходить из проекта и возвращаться к нему позже, где вам необходимо уметь читать и понимать свой собственный код.Для коротких проектов, которыми вы не планируете делиться, версия 2 в порядке (и, вероятно, более экономно использует память), но любой крупный проект должен использовать что-то более похожее на версию 1.
Другое соображение: собираетесь ли выиспользовать эту переменную в любом месте, кроме функции, где она определена (установлена)?Если нет, вам не нужно хранить его в объекте, который снова указывает на версию 1.