EDIT:
delete
не относится к не-объектов, поэтому мой первоначальный ответ был ошибочным. Furtermore, поскольку переменная rowId объявлена с флагом var
, она будет очищена сборкой мусора. С другой стороны, если бы она была определена без нее, она будет жить на протяжении всей страницы/приложения.
источник: http://lostechies.com/derickbailey/2012/03/19/backbone-js-and-javascript-garbage-collection/
Переменная RowId будет храниться в памяти и не будет выпущен сборщиком мусора, так как он ссылается на. Если вы не отпустите его, как ниже, он будет там до конца жизни программы. Также помните, что потребуется время, чтобы создать переменную (минимальное, но вы просили)
var rowId = 3
updateStuff(rowId);
delete rowId
с эффективностью в виду, то да, есть разница. Второй пример - самый быстрый и не требует дополнительных ресурсов.
OBS. Некоторые языки оптимизируют код как таковой и просто удаляют последовательность, но я сильно сомневаюсь, что JavaScript делает это.
Если вы не собираетесь использовать это значение после передачи его в 'updateStuff', сначала не помещайте его в переменную. Преимущество, которое я вижу, это то, что оно более читаемо, используя переменную. Он может быть захвачен закрытием и, возможно, никогда не выпущен/GC'ed. Но это, и эффективность ** этого **, не должно быть проблемой – Ian
, если есть разница, это незначительно. вам следует больше беспокоиться о повторном использовании и удобочитаемости кода в зависимости от того, что вы делаете. если rowID всегда установлен в 3 и никогда не используется нигде, то нет смысла использовать для него переменную. однако, если вы планируете расширить свой код в будущем и можете захотеть изменить/повторно использовать rowID, я бы использовал переменную. –
Я просеиваю большую базу кода, которая делает это повсюду (без намерения расширить эти разделы), поэтому мне было просто любопытно, стоит ли чистить. – user1882953