2017-07-19 3 views
1

キーがString/Numberで、値がObjectのキー値のペアを格納するために、Javascriptで他の弱参照のWeakMapを作成する方法はありますか?WeakMap反転

参照はこのような何かを働かなければならないだろう:私はまだ現在のスコープで使用されている参照のトラックを保持しているツリー構造の種類を作成

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  

私は多くのマージを行い、深くネストされた構造を再帰的にクリーンアップすることは、このユースケースでは非常に非効率的になります。

答えて

1

削除操作をキャッチすることはできません。あなたができることは、別のobjにデータをカプセル化することです。

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

この1つの参照が削除されたのであれば、それはトップ1が削除されたときに、ネストされた構造を削除するの問題を解決していない私の理解にもう

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

アクセスすることがカント? ps。私はその例を修正した、前のものは無効だった。 私はそれを知りません。なぜなら、es6 WeakMapは文字列をキーやオブジェクトとして値として取りません。毎日のプログラミングに価値を追加していないようです。 – Nabuska

+0

@nabuskaええ、あなたは何かをフィルタリングする必要があるかもしれません。 –