Map[Symbol.species]
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2016年9月.
Map[Symbol.species] は静的アクセサープロパティで、 Map オブジェクトをコピーする方法を示す未使用のアクセサープロパティです。
構文
js
Map[Symbol.species]
返値
get [Symbol.species] が呼び出されたコンストラクター (this) の値です。返される値は、Map インスタンスのコピーを構築するために使用されます。
解説
[Symbol.species] アクセサープロパティは Map オブジェクトの既定のコンストラクターを返します。サブクラスのコンストラクターは、コンストラクターを代入して変更することによりオーバーライドすることができます。
メモ:
このプロパティは現在、どの Map のメソッドからも使われていません。
例
>通常のオブジェクトの species
[Symbol.species] プロパティは既定のコンストラクター関数を返しますので、Map オブジェクトには Map コンストラクターを返します。
js
Map[Symbol.species]; // 関数 Map()
派生オブジェクトの species
Map の独自サブクラスのインスタンス、例えば MyMap では、MyMap の species は MyMap コンストラクターになっています。しかし、これをオーバーライドして、派生クラスのメソッド内で親の Map オブジェクトを返したい場合があります。
js
class MyMap extends Map {
// MyMap の species を親の Map コンストラクターで上書き
static get [Symbol.species]() {
return Map;
}
}
仕様書
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-get-map-%symbol.species%> |
ブラウザーの互換性
Loading…