Справочник по 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

Добавить страницу в закладки:
РАЗРЕШАЕТСЯ перепечатывать и копировать информацию ТОЛЬКО ПРИ РАЗМЕЩЕНИИ ссылки на оригинал!
(<A href="https://www.spravkaweb.ru/">Справочник Web-языков</A>)
другие проекты
Rambler\'s Top100 Индекс цитирования