Skip to content

Commit 5e8735d

Browse files
authored
fix(map-and-set): Symbol as WeakMap Keys (#1684)
* fix(map-and-set): Symbol as WeakMap Keys * code * 脚注
1 parent 60c7676 commit 5e8735d

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

source/basic/map-and-set/README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,7 @@ obj = null;
307307
308308
`WeakMap``Map`と似ていますがiterableではありません。
309309
そのため、キーを列挙する`keys`メソッドや、データの数を返す`size`プロパティなどは存在しません。
310-
また、キーを弱い参照で持つ特性上、キーとして使えるのは参照型のオブジェクトだけです
310+
また、キーを弱い参照で持つ特性上、キーとして使えるのは参照型のオブジェクトと`Symbol`[^es2023]だけです
311311
312312
`WeakMap`の主な使い方のひとつは、クラスにプライベートの値を格納することです。
313313
`this` (クラスインスタンス) を `WeakMap` のキーにすることで、インスタンスの外からはアクセスできない値を保持できます。
@@ -513,7 +513,7 @@ console.log(results); // => ["a","b"]
513513
つまり、`WeakSet`は値の追加と削除、存在確認以外のことができません。
514514
データの格納ではなく、データの一意性を確認することに特化したセットと言えるでしょう。
515515
516-
また、弱い参照で値を持つ特性上、`WeakSet`の値として使えるのは参照型のオブジェクトだけです
516+
また、弱い参照で値を持つ特性上、`WeakSet`の値として使えるのは参照型のオブジェクトと`Symbol`[^es2023]だけです
517517
518518
## まとめ {#conclusion}
519519
@@ -535,3 +535,5 @@ console.log(results); // => ["a","b"]
535535
[プロパティの存在を確認する]: ../object/README.md#confirm-property
536536
[プロトタイプオブジェクト]: ../prototype-object/README.md
537537
[`Object.prototype`を継承しないオブジェクト]: ../prototype-object/README.md#not-inherit-object
538+
539+
[^es2023]: ES2023でSymbolも扱えるように仕様が変更されています。

0 commit comments

Comments
 (0)