このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

WeakSet.prototype.has()

Baseline 広く利用可能

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2015年9月以降、すべてのブラウザーで利用可能です。

has()WeakSet インターフェイスのメソッドで、指定された値がこの WeakSet に存在するかどうかを示す論理値を返します。

試してみましょう

const weakset = new WeakSet();
const object1 = {};
const object2 = {};

weakset.add(object1);

console.log(weakset.has(object1));
// 予想される結果: true

console.log(weakset.has(object2));
// 予想される結果: false

構文

js
has(value)

引数

value

WeakSet オブジェクト内で存在の有無を検査する値。オブジェクトの比較は、値ではなく参照によって行われます。

返値

指定された値が WeakSet オブジェクト内に存在する場合、true を返します。存在しない場合は false を返します。value がオブジェクトでも未登録シンボルでもない場合は、常に false を返します。

has() メソッドの使用

js
const ws = new WeakSet();
const obj = {};
ws.add(window);

ws.has(window); // true を返す
ws.has(obj); // false を返す

// 未登録シンボルを格納
const sym = Symbol("foo");
ws.add(sym);
ws.add(Symbol.iterator);

仕様書

仕様書
ECMAScript® 2027 Language Specification
# sec-weakset.prototype.has

ブラウザーの互換性

関連情報