Справочник по Flash : ActionScript : Action : delete - Удаление объекта, элемента массива или переменной
смотрим также
Материал из Справочник Web-языков
delete
(Оператор)
Этот оператор используется для удаления из сценария объекта, свойства объекта, элемента массива или переменных.
Синтаксис:
delete identifier;
Аргументы:
- identifier
- Имя переменной, объекта, свойства объекта, массива или переменной массива, подлежащего удалению.
Описание:
Оператор delete уничтожает объект или переменную, имя которой указывает identifier, и возвращает true если объект был успешно удален. В противном случае возвращает false.
Этот оператор полезен для высвобождения памяти, используемой скриптами, хотя, delete - оператор, который обычно применяется в формулировке:
delete x;
Оператор delete может не сработать и возвратить false если identifier не существует, или не может быть удален.
Предопределенные функции и объекты, также как и переменные, объявленные с помощью var, не могут быть удалены.
Чтобы избавить массив от ненужного именованного элемента, применяем оператор delete:
delete arrayName.elementName
Удаление именованного элемента разрушает как значение элемента, так и его контейнер, освобождая при этом память, занимаемую элементом и его содержимым. (При удалении нумерованных элементов оператор delete удаляет только значение, а контейнер сохраняет).
В следующих примерах создается объект, используется, а затем удаляется за ненадобностью:
account = new Object(); account.name = "Jon"; account.balance = 10000; ... delete account;
В следующем примере удаляется свойство (property) объекта:
// создаем новый объект "account" account = new Object(); // назначаем свойство name объекту account account.name = "Jon"; // удаляем свойство delete account.name;
Еще один пример удаления свойства объекта:
// создаем массив длиной 0 array = new Array(); // теперь его длина - 1 array[0] = "abc"; // добавляем еще один элемент - длина - 2 array[1] = "def"; // теперь - 3 array[2] = "ghi"; // удаляем array[2] но длина массива не меняется, delete array[2];
Следующие примеры демонстрируют действие delete на объектные ссылки:
// создаем объект, присваиваем переменной ref1 значение ссылки на него ref1 = new Object(); ref1.name = "Jody"; // копируем ссылочную переменную, а затем удаляем ref1 ref2 = ref1; delete ref1;
Если бы ref1 не была бы скопирована в ref2, то и объект был бы удален, так как на него не осталось бы ни одной ссылки. Когда же мы удалим ref2, больше не останется ссылок на объект, и он будет удален, так как на него не будет ссылаться ни одна переменная.
Совместимость:
Используется с 5-ой версии Flash