Donc, pour résumer votre question: vous voulez éviter, autant que possible, de la difficulté avec le IE6 GC bug. Ce bug a deux causes:
- La Collecte des ordures se produit une fois tous les si nombreuses attributions; par conséquent, plus les allocations que vous faites, le plus souvent GC ne sera pas exécuté;
- Plus les objets que vous avez ‘en l'air', le plus de temps chaque Collecte des Ordures course (car il va ramper à travers l'ensemble de la liste des objets pour voir qui sont marqués comme des ordures).
La solution à la cause 1 semble être: maintenir le nombre d'allocations; attribuer de nouveaux objets et des cordes aussi peu que possible.
La solution 2 de la cause semble être: le nombre de "vivre" les objets vers le bas; supprimer vos chaînes et les objets dès que vous n'en avez plus besoin, et de les créer à nouveau si nécessaire.
Dans une certaine mesure, ces solutions sont contradictoires: conserver le nombre d'objets dans la mémoire faible entraînera plus d'allocations et de fonds. À l'inverse, constamment en réutilisant les mêmes objets pourrait signifier de garder plus les objets en mémoire que ce qui est strictement nécessaire.
Maintenant, pour votre question. Si vous allez réinitialiser un objet par en créer une nouvelle, ou par la suppression de toutes ses propriétés: cela dépendra de ce que vous voulez faire avec elle par la suite.
Vous aurez probablement envie de leur attribuer de nouvelles propriétés:
- Si vous le faites immédiatement, alors je suggère attribution de nouvelles propriétés d'emblée, et de sauter la suppression ou de compensation en premier. (Assurez-vous que toutes les propriétés sont soit remplacé ou supprimé, si!)
- Si l'objet ne sera pas utilisé immédiatement, mais sera repeuplé à un stade ultérieur, alors je suggère de le supprimer ou de l'affecter la valeur null, et en créer un nouveau plus tard.
Il n'y a pas rapide, facile à utiliser pour effacer un objet de JScript pour les réutiliser comme si c'était un objet sans en créer une nouvelle. Ce qui signifie que la réponse courte à votre question est "Non", comme jthompson dit.