You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 1-js/05-data-types/08-weakmap-weakset/article.md
+7-7Lines changed: 7 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -50,7 +50,7 @@ john = null; // sovrascriviamo il riferimento
50
50
51
51
*!*
52
52
// john viene memorizzato all'interno di map,
53
-
// possiamo ottenerlo utilizzando map.keys()
53
+
// possiamo estrarlo utilizzando map.keys()
54
54
*/!*
55
55
```
56
56
@@ -75,7 +75,7 @@ weakMap.set("test", "Whoops"); // Errore, perché "test" non è un oggetto
75
75
*/!*
76
76
```
77
77
78
-
Ora, se utilizziamo un oggetto come chiave, e perdiamo tutti i riferimenti a quell'oggetto -- questo verrà rimosso dalla memoria (e dalla map) automaticamente.
78
+
Ora, se utilizziamo un oggetto come chiave, e non ci sono altri riferimenti a quell'oggetto -- questo verrà rimosso dalla memoria (e dalla map) automaticamente.
79
79
80
80
```js
81
81
let john = { name:"John" };
@@ -90,7 +90,7 @@ john = null; // sovrascriviamo il riferimento
90
90
91
91
Confrontiamolo con l'esempio di `Map` visto sopra. Ora se `john` esiste solo come chiave della `WeakMap` -- verrà eliminato automaticamente dalla map (e anche dalla memoria).
92
92
93
-
`WeakMap` non supportano gli iteratori e i metodi `keys()`, `values()`, `entries()`, quindi non c'è alcun modo di ottenere tutte le chiavi o valori tramite questi metodi.
93
+
`WeakMap` non supporta gli iteratori e i metodi `keys()`, `values()`, `entries()`, quindi non c'è alcun modo di ottenere tutte le chiavi o valori tramite questi metodi.
Possiamo pensare di avere del codice che tiene nota del conteggio delle visite per ogni utente. L'informazioni viene memorizzata in un map: l'utente è la chiave mentre il conteggio delle visite è il valore. Quando l'utente esce, vogliamo smettere di mantenere in memoria il conteggio delle visite.
123
+
Immaginiamo di avere del codice che tiene nota del numero di visite per ogni utente. L'informazioni viene memorizzata in un map: l'utente è la chiave, mentre il conteggio delle visite è il valore. Quando l'utente esce, vogliamo smettere di mantenere in memoria il conteggio delle visite.
124
124
125
125
Qui vediamo un esempio di conteggio utilizzando `Map`:
126
126
@@ -284,8 +284,8 @@ La maggior limitazione di `WeakMap` e `WeakSet` è l'assenza di iteratori, e la
284
284
285
285
`WeakSet` è una collezione simile a `Set`, che memorizza solamente oggetti, e li rimuove completamente una volta che diventano inaccessibili.
286
286
287
-
I loro principali vantaggi sono che possiedono un riferimento debole agli oggetti, in questo modo possono essere facilmente ripuliti dal garbage collector.
287
+
Il loro principale vantaggio è che possiedono un riferimento debole agli oggetti, in questo modo possono essere facilmente ripuliti dal garbage collector.
288
288
289
-
Questi vantaggi però non consento l'utilizzo di`clear`, `size`, `keys`, `values`...
289
+
Il lato negativo è di non poter utilizzare`clear`, `size`, `keys`, `values`...
290
290
291
-
`WeakMap` e `WeakSet` vengono utilizzate come strutture dati "secondarie" in aggiunta a quelle "principali". Una volta che l'oggetto viene rimossa dalla struttura dati "principale", se l'unico riferimento rimasto è una chiave di `WeakMap` o `WeakSet`, allora verranno rimossi.
291
+
`WeakMap` e `WeakSet` vengono utilizzati come strutture dati "secondarie" in aggiunta a quelle "principali". Una volta che l'oggetto viene rimosso dalla struttura dati "principale", se l'unico riferimento rimasto è una chiave di `WeakMap` o `WeakSet`, allora verrà rimosso.
0 commit comments