Object【オブジェクト】 の連想配列 | Map【マップ】 | Set 【一意コレクション】 | WeakMap 【弱参照マップ】 | WeakSet 【弱参照一意コレクション】 | |
---|---|---|---|---|---|
コンストラクタ | オブジェクトリテラル new Object ( [ value ] ) | new Map ( [ iterable ] ) | new Set ( [ iterable ] ) | new WeakMap ( [ iterable ] ) | new WeakSet ( [ iterable ] ) |
キー | 文字列・Symbol | 任意 | オブジェクトのみ | ||
値 | 任意 | 任意 | 任意 | 任意 | オブジェクトのみ |
ガベージ手動 | 手動 | 自動 | | ||
要素数 | Object.keys ( obj ).length | size プロパティ | size プロパティ | ||
要素追加・更新 | obj.key obj [ 'key' ] セッター | set ( key, value ) | add ( value ) | set ( key, value ) | add ( value ) |
要素有無 | hasOwnProperty(V) | has ( key ) | has ( value ) | has ( key ) | has ( value ) |
要素値取得 | obj.key obj [ 'key' ] ゲッター | get ( key ) | get ( key ) | ||
要素削除 | delete obj.key delete obj [ 'key' ] | delete ( key ) | delete ( value ) | delete ( key ) | delete ( value ) |
全要素削除 | clear ( ) | clear ( ) | |||
イテレータ オブジェクト作成 (キー・値) | Object.entries(O) (配列取得) | [@@iterator] ( ) entries ( ) | entries ( ) (キー = 値) | ||
イテレータ オブジェクト作成 (キー) | Object.keys( O ) (配列取得) | keys ( ) | keys ( ) (キー = 値) | ||
イテレータ オブジェクト作成 (値) | Object.values(O) (配列取得) | values ( ) | [@@iterator] ( ) values ( ) | ||
反復要素処理 | for-in | for-of forEach (callbackfn [, thisArg]) next() | for-of forEach (callbackfn [, thisArg]) next() |
WeakSet Objects | ||
---|---|---|
ES2022 (13) | ES2021 (12) | ES2020 (11) |
WeakSet.prototype [ @@toStringTag ] | ||
ES2022 (13) | ES2021 (12) | ES2020 (11) |
WeakSet.prototype.constructor | ||
ES2022 (13) | ES2021 (12) | ES2020 (11) |
WeakSet.prototype | ||
ES2022 (13) | ES2021 (12) | ES2020 (11) |
構文 | 説明 |
---|---|
new WeakSet( [ iterable ] ) | コンストラクタ |
プロパティ | 説明 | |
---|---|---|
WeakSet.prototype | [ @@toStringTag ] | タグ (下記 例を参照) [Symbol.toStringTag]:"WeakMap" |
WeakSet.prototype. | constructor | コンストラクタ定義 (下記 例を参照) |
WeakSet. | prototype | プロトタイプ (下記 例を参照) |
メソッド | 説明 | |
---|---|---|
WeakSet.prototype. | add(value) | 要素追加 |
WeakSet.prototype. | delete(value) | 要素削除 |
WeakSet.prototype. | has(value) | 要素有無 |
console.log(WeakSet.prototype.constructor);
// 出力:function WeakSet() { [native code] }
console.log(WeakSet.prototype);
// 出力:
// WeakSet
// add:function add()
// constructor:function WeakSet()
// delete:function delete()
// has:function has()
// Symbol(Symbol.toStringTag):"WeakSet"
// __proto__:Object
var weakSet1 = new WeakSet();
console.log(weakSet1[Symbol.toStringTag]);
// 出力:WeakSet
console.log(weakSet1.constructor);
// 出力:function WeakSet() { [native code] }
var obj1 = new Object("obj1");
var obj2 = new Object("obj2");
weakSet1.add(obj1);
weakSet1.add(obj2);
weakSet1.delete(obj2);
console.log(weakSet1.has(obj1)); // 出力:true
console.log(weakSet1.has(obj2)); // 出力:false