Instruction delete

delete reference

Détruit la référence d'objet spécifiée par le paramètre reference et renvoie true si la référence est supprimée correctement ; false sinon. Cet opérateur permet de libérer la mémoire mobilisée par les scripts. Vous pouvez exploiter l'opérateur delete pour supprimer des références à des objets. Une fois toutes les références à un objet supprimées, Flash Player supprime cet objet et libère la mémoire qu'il utilise.

Bien que delete soit un opérateur, il est généralement employé en tant qu'instruction, comme indiqué dans l'exemple suivant :

delete x;

L'opérateur delete peut échouer et renvoyer false si le paramètre reference n'existe pas ou ne peut pas être supprimé. L'instruction var ne vous permet pas de supprimer d'objets et de propriétés prédéfinis, ni de variables déclarées au sein d'une fonction. Vous ne pouvez pas utiliser l'opérateur delete pour supprimer des clips.

Disponibilité : ActionScript 1.0 ; Flash Lite 2.0

Valeur renvoyée

Boolean - Valeur booléenne.

Paramètres

reference:Object - Nom de la variable ou de l'objet à éliminer.

Exemple

Utilisation 1 : L'exemple suivant crée un objet, l'utilise, puis le supprime lorsqu'il n'est plus requis :

var account:Object = new Object(); 
account.name = "Jon"; 
account.balance = 10000; 
trace(account.name); // Renvoie : Jon 
delete account; 
trace(account.name); // Renvoie : non défini 

Utilisation 2 : L'exemple suivant supprime une propriété d'un objet :

// Création de l'objet " account " 
var account:Object = new Object(); 
// Affectation du nom de propriété à account 
account.name = "Jon"; 
// Suppression de la propriété 
delete account.name; 

Utilisation 3 : L'exemple suivant supprime une propriété d'objet :

var my_array:Array = new Array(); 
my_array[0] = "abc"; // my_array.length == 1 
my_array[1] = "def"; // my_array.length == 2 
my_array[2] = "ghi"; // my_array.length == 3 
// my_array[2] est supprimé, mais Array.length n'est pas modifié 
delete my_array[2]; 
trace(my_array.length); // Renvoie : 3 
trace(my_array); // Renvoie : abc,def,undefined

Utilisation 4 : L'exemple suivant illustre le comportement de l'instruction delete sur des références à un objet :

var ref1:Object = new Object(); 
ref1.name = "Jody"; 
// Copie la variable de référence dans une nouvelle variable 
// et supprime ref1 
ref2 = ref1; 
delete ref1; 
trace("ref1.name "+ref1.name); // Renvoie : ref1.name undefined 
trace("ref2.name "+ref2.name); // Renvoie : ref2.name Jody 

Si ref1 n'avait pas été copié dans ref2, l'objet aurait été supprimé au moment de la suppression de ref1 car il ne contient aucune référence. Si vous supprimez ref2, il n'existe aucune référence à l'objet ; celui-ci sera détruit et la mémoire qu'il utilisait devient disponible.

Voir aussi

Instruction var