Bonjour à tous,
Venant du C et débutant en Javascript, je me demande comment faire un free d'un object créé avec new ?
Si ce free n'est pas nécessaire quand est ce que l'objet est détruit ?
Merci de vos lumières
Domi
Bonjour à tous,
Venant du C et débutant en Javascript, je me demande comment faire un free d'un object créé avec new ?
Si ce free n'est pas nécessaire quand est ce que l'objet est détruit ?
Merci de vos lumières
Domi
Un free ? Qu'est-ce que tu entends par la ?Envoyé par DomiPi
libérer la mémoire ?
l'objet s'eteint avec la page ...
sinon tu peux essayer avec removeChild ou = null
heummm... il me semble que j'ai déjà utilisé l'opérateur delete, mais je ne crois pas que celà fasse grand chose puisque comme tout language java, le garbage collector passe quand ça lui tente !
Dsl de mon accent québecois
si le delete rend bien ton objet inaccessible, après est-ce que la mémoire est libérée ? avec un gc tu sais jamais lol
(d'ailleurs y a pas beaucoup de doc là-dessus si kkun a des infos...)
spacefrog< avec la page tu veux dire quoi par là ?
et puis avec new, l'objet n'est pas facilement compris comme propriété d'un constructeur, et du coup, la suppression est difficile;
mais si tu déclares
tu pourras "apparemment" le supprimer (mais pour l'espace libéré ou pas, aucune info)
Code : Sélectionner tout - Visualiser dans une fenêtre à part obj[0]=new obj();
delete est l'opposé de var.
Ensuite son utilité est franchement douteuse...
c'est bien delete qui détruit ta variable. mais pas l'objet
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 var myVar = new function () {}; delete (myVar);
myVar est un nom de variable qui référence un objet (ici une fonction)
Delete coupe cette référence et suprime la variable. l(objet lui sera récupéré par le garbage collector.
en imaginant que tu ai passé la référence à une autre variable il ne faut pas que l'objet soit détruit donc seule la variable elle même est supprimées.
il en vas de même avec une affectationlorsque tu fais ça maVar ne contient plus une référence à 'objet le lien est cassé donc l'objet est potentiellement supprimable par le gc qui ne le fera que lorsqu'il aura le temps ou le besoin
Code : Sélectionner tout - Visualiser dans une fenêtre à part myVar = 45;
tu ne peux explicitement détruire un objet. mais dès que toutes les référence sont perdue il est comme supprimé car innacessble le GC s'enchargera alors.
le removeChild supprime la référence d'un élément du DOM à son fils. le fils n'est pas détruit. de la même façon si besoin le GC s'en chargera. et ce uniquement s'il n'existe plus aucune référence à l'objet.
en les écritures
ne sont pas tout a fait équivalentes. les deux casse le lien avec l'objet référencé mais seule la premier détruit la variable.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 delete(myVar); myVar=null;
en clair après le delete myVar n'existe pas alors qu'apès le = null elle existe toujours mais vaut null
A+JYT
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager