Widely available すべての主要ブラウザで対応済み。安心して使用可能。

概要

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
1+対応 (バージョン) 未対応 注釈あり サブ機能の解説は MDN Web Docs (CC BY-SA 2.5)

基本構文

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..

プレビュー全画面表示

Check object membership

specific. Object to include or, reference in manage..

プレビュー全画面表示

Simulate circular-reference detection

re processing to, in to object recordnoneloop preventsimul-tion..

プレビュー全画面表示

実務での使いどころ

  • WeakSet の活用

    オブジェクトのみを格納でき、ガベージコレクションを妨げない Set。既処理オブジェクトの追跡に使用。

注意点

  • 特になし。すべての主要ブラウザで安定して動作する。

アクセシビリティ

  • JavaScript による動的更新時は、aria-live リージョンで変更をスクリーンリーダーに通知する。

Powered by web-features