WeakSet
WeakSet は、オブジェクトや未登録シンボルなど、ガベージコレクションの対象となる値の集合です。WeakSet 内の値は 1 回しか出現できません。つまり、WeakSet の集合内では固有の値である必要があります。
対応ブラウザ
| 機能 | デスクトップ | モバイル | ||||
|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Safari | Chrome Android | Safari iOS | |
| 36 | 12 | 34 | 9 | 36 | 9 | |
| WeakSet コンストラクターで、 WeakSet オブジェクトを生成し、これに弱い参照でオブジェクトをコレクションで保持することができます。 | 36 | 12 | 34 | 9 | 36 | 9 |
WeakSet.WeakSet.iterable allowed `新しい WeakSet(反復可能)` | 38 | 12 | 34 | 9 | 38 | 9 |
WeakSet.WeakSet.null allowed `新しいWeakSet(null)` | 36 | 12 | 37 | 9 | 36 | 9 |
| add() メソッドは、新しい要素を WeakSet オブジェクトの最後に追加します。 | 36 | 12 | 34 | 9 | 36 | 9 |
| delete() メソッドは、WeakSet オブジェクトから指定された要素を取り除きます。 | 36 | 12 | 34 | 9 | 36 | 9 |
| has() メソッドは、特定の値をもつ要素が WeakSet オブジェクト内に存在するかどうかを示す真偽値を返します。 | 36 | 12 | 34 | 9 | 36 | 9 |
WeakSet.symbol as keys 未登録のシンボルをキーとして使用 | 109 | 109 | 146 | 16.4 | 109 | 16.4 |
基本構文
JAVASCRIPT
const processed = new WeakSet();
function handle(obj) {
if (processed.has(obj)) return; // Already processed
processed.add(obj);
// Execute processing
} ライブデモ
実務での使いどころ
-
WeakSet の活用
WeakSet は、オブジェクトや未登録シンボルなど、ガベージコレクションの対象となる値の集合です。
注意点
- 特になし。すべての主要ブラウザで安定して動作する。
アクセシビリティ
- JavaScript による動的更新時は、aria-live リージョンで変更をスクリーンリーダーに通知する。