Les « WeakSet » sont comme des objets « Set » c’est-à-dire qu’ils ne peuvent pas contenir deux fois un même élément ou item. Les « Weakset »s présentent les deux particularités suivantes : 1. Les « values » stockées dans un « WeakSet »... more
Les « WeakSet » sont comme des objets « Set » c’est-à-dire qu’ils ne peuvent pas contenir deux fois un même élément ou item.
Les « Weakset »s présentent les deux particularités suivantes :
1. Les « values » stockées dans un « WeakSet » ne peuvent pas être des primitives (Boolean, Number, String, ou undefined), mais des objets.
2. Un « WeakSet » est justement faigle (weak) : S’il n’y a plus de ré-férencement aux (clés des) objets stockés dans un WeakSet, ils sont automatiquement déférencés / détruits par le « collecteur des or-dures » (garbage collected, ce qui interdit du coup l’itération sur les éléments (membres, items) du WeakSet). On dit que les « WeakSet »s ont une référence faible, ce qui permet l’économie de la mémoire.
À l’exécution de ce code il s’affiche les deux objets « o1 » et « o2 » ainsi que l’array « a », tous membres de notre WeakSet « _wSet », et juste après les pointeurs de « o1 » et de « a » sont branchés sur « null » ce qui signifie « débranchés ».
Le click sur le bouton affiche l’état actuel du WeakSet « _wSet ». Cliquez-le d’abord juste après avoir lancé le pro-gramme par exemple avec <F5>, et on aura une situation comme celle-ci.
Puis clisquez encore ce bouton par exemple 6 minutes après, et vous aurez le status suivant sur le WeakSet « _wSet », les deux objets dont les poin-teurs ont été branchés sur « null » ont été automatiquement « garbage collected ».