WeakMap WeakSet

1141 ワード

WeakMap WeakSet
特性:
  • WeakMapのkeyに対する引用とWeakSetのメンバーは弱い引用
  • である.
  • WeakMapのkeyに対する引用とWeakSetのメンバーはオブジェクトだけです.
  • を遍歴することができません.
    利点:
  • メモリ漏れの原因になりにくい
  • 弱い引用
    対象を引用しましたが、ゴミの回収に影響はありません.
    この引用によって元のゴミ回収メカニズムが変わることはなく、引用前にゴミ捨て場に入るべきです.引用後はやはりごみ捨て場に入らなければなりません.引用の影響を受けません.
    var obj = {};
    var wm = new WeakMap();
    //    
    wm.set(obj, 1);
    console.log(wm.get(obj));    // 1
    
    // obj null,           。
    obj = null;
    console.log(wm.get(obj));    // undefined
    Set Map Weak Set WeakMapの違い
    セット
  • メンバーは、唯一、無秩序であり、
  • を繰り返さない.
  • [value,value]キーの値はキーの名前と一致しています.
  • は巡回できます.方法はadd、delete、has
  • です.
    ウェストセット
  • メンバーは対象
  • です.
  • メンバーは弱い参照です.ゴミ回収メカニズムによって回収され、DOMノードを保存するために使用できます.メモリ漏れを引き起こしにくいです.
  • は遍歴することができなくて、方法はadd、delete、has
  • があります.
    Map
  • は本質的にキーパッドのペアの集合であり、類似の集合
  • である.
  • は、巡回することができ、多くの方法は、様々なデータフォーマットと
  • を変換することができる.
    WeakMap
  • 受け入れる対象はキー名(nullを除く)として、他のタイプの値をキー名として受け入れません.
  • キーの名前は弱い引用で、キーの値は任意であり、キーの名前が指すオブジェクトはごみに回収されます.この時キーの名前は無効です.
  • は遍歴することができなくて、方法はget、set、has、delete
  • があります.
    具体的な使い方ともっと詳しく説明します.
    ES 2015 WeakMapの学習と使用