delete

Disponibilidad

Flash Player 5.

Sintaxis

delete reference

Parámetros

reference Nombre de la variable u objeto que se va a eliminar.

Valor devuelto

Valor booleano.

Descripción

Operador; destruye el objeto o la variable especificada por el parámetro reference y devuelve true si el objeto se ha eliminado correctamente; de lo contrario, devuelve el valor false. Este operador es útil para liberar memoria utilizada por scripts. Aunque delete es un operador, normalmente se utiliza como sentencia, como en el ejemplo siguiente:

delete x;

El operador delete puede fallar y devolver false si el parámetro reference no existe o no puede eliminarse. Los objetos y propiedades predefinidos y las variables declaradas con var no pueden eliminarse. No puede utilizar el operador delete para eliminar clips de película.

Ejemplo

Sintaxis 1: en el ejemplo siguiente se crea un objeto, se utiliza y después se elimina cuando ya no es necesario.

account = new Object();
account.name = 'Jon';
account.balance = 10000;

delete account;

Sintaxis 2: el ejemplo siguiente elimina una propiedad de un objeto.

// crear el nuevo objeto "account"
account = new Object();
// asignar un nombre de propiedad a la cuenta 
account.name = 'Jon'; 
// eliminar la propiedad
delete account.name; 

Sintaxis 3: el ejemplo siguiente es otro ejemplo de la eliminación de una propiedad de un objeto.

// crear un elemento Array de longitud 0
my_array = new Array(); 
// añadir un elemento a la matriz. Array.length es ahora 1.
my_array[0] = "abc";
// añadir otro elemento a la matriz. Array.length es ahora 2.
my_array[1] = "def"; 
// añadir otro elemento a la matriz. Array.length es ahora 3.
my_array[2] = "ghi";
// se elimina my_array[2], pero Array.length no cambia
delete array[2];
trace(my_array.length);

Sintaxis 4: en el ejemplo siguiente se muestra el comportamiento de delete en referencias de objeto.

// crear un nuevo objeto y asignar la variable ref1

// para hacer referencia al objeto
ref1 = new Object();
ref1.name = "Jody";
// copiar la variable de referencia a la nueva variable
// y eliminar ref1
ref2 = ref1;
delete ref1;

Si ref1 no se hubiera copiado en ref2, el objeto se habría eliminado al eliminar ref1, porque no habría referencias a él. Si elimina ref2, ya no habrá referencias al objeto; se destruirá y la memoria que utilizaba pasará a estar disponible.

Véase también

var