WeakSet
WeakSet はオブジェクトのみを格納でき、参照がなくなるとガベージコレクションの対象になります。オブジェクトの処理済みマーキングなどに使用します。
概要
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
} ライブデモ
Track processed objects
onedegreeprocessingobject WeakSet to, doubleprocessing prevention..
プレビュー全画面表示
Simulate circular-reference detection
re processing to, in to object recordnoneloop preventsimul-tion..
プレビュー全画面表示
実務での使いどころ
-
WeakSet の活用
オブジェクトのみを格納でき、ガベージコレクションを妨げない Set。既処理オブジェクトの追跡に使用。
注意点
- 特になし。すべての主要ブラウザで安定して動作する。
アクセシビリティ
- JavaScript による動的更新時は、aria-live リージョンで変更をスクリーンリーダーに通知する。
参考リンク
Powered by web-features