2017-07-19 4 views
1

Gibt es eine Möglichkeit, WeakMap von anderen schwachen Referenzen in Javascript für die Speicherung von Schlüsselwertpaare zu erstellen, wobei Schlüssel String/Nummer und Wert ist Object ist.WeakMap invertiert

Die Referenzierung müßte so etwas wie dies funktioniert:

const wMap = new WeakRefMap(); 
const referencer = {child: new WeakRefMap()} 
wMap.set('child', temp.child); 
wMap.has('child'); // true 
delete referencer.child 
wMap.has('child'); //false  

I Art einer Baumstruktur zu schaffen, die den Überblick über Referenzen enthält, die in dem aktuellen Bereich noch verwendet werden.

Ich werde viel zusammenführen und rekursiv eine tief verschachtelte Struktur aufräumen kann für diesen Anwendungsfall sehr ineffizient sein.

Antwort

1

Sie können einen Löschvorgang nicht abfangen. Was Sie tun könnten, wäre das Einkapseln der Daten in einem anderen Objekt, z.

function referenceTo(value){ 
this.value=value; 
} 

Also, wenn diese eine Referenz gelöscht wird, kann es nicht mehr

var somedata=new referenceTo(5) 
var anotherref=somedata; 
//do whatever 
delete somedata.value; 
//cannot be accessed anymore 
anotherref.value;//undefined 
+0

Zu meinem Verständnis zugegriffen werden, die das Problem nicht lösen verschachtelte Strukturen zu löschen, wenn oberste gelöscht wird? ps. Ich habe das Beispiel korrigiert, das vorherige war ungültig. Ich verstehe es nicht, warum es6 WeakMap keine Zeichenfolgen als Schlüssel und Objekte als Werte nimmt. Es scheint keinen Mehrwert für die tägliche Programmierung zu geben. – Nabuska

+0

@nabuska yeah Sie müssen vielleicht irgendwann filtern. –

Verwandte Themen