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 July 2015.
Map[Symbol.species]
は静的アクセサープロパティで、 Map
オブジェクトをコピーする方法を示す未使用のアクセサープロパティです。
構文
js
Map[Symbol.species]
返値
get [Symbol.species]
が呼び出されたコンストラクター (this
) の値です。返される値は、Map
インスタンスのコピーを構築するために使用されます。
解説
species アクセサープロパティは Map
オブジェクトの既定のコンストラクターを返します。サブクラスのコンストラクターは、コンストラクターに代入して変更することによりオーバーライドすることができます。
メモ: このプロパティは現在、どの Map
のメソッドからも使われていません。
例
通常のオブジェクトの species
species プロパティは既定のコンストラクター関数を返しますので、Map
オブジェクトには Map
コンストラクターを返します。
js
Map[Symbol.species]; // function Map()
派生オブジェクトの species
Map
の独自サブクラスのインスタンス、例えば MyMap
では、MyMap
の species は MyMap
コンストラクターになっています。しかし、これをオーバーライドして、派生クラスのメソッド内で親の Map
オブジェクトを返したい場合があります。
js
class MyMap extends Map {
// MyMap の species を親の Map コンストラクターで上書き
static get [Symbol.species]() {
return Map;
}
}
仕様書
Specification |
---|
ECMAScript Language Specification # sec-get-map-%symbol.species% |
ブラウザーの互換性
BCD tables only load in the browser