--- title: get Map[@@species] slug: Web/JavaScript/Reference/Global_Objects/Map/@@species tags: - ECMAScript 2015 - JavaScript - Map - Property translation_of: Web/JavaScript/Reference/Global_Objects/Map/@@species ---
Map[@@species] アクセサープロパティは、 Map コンストラクターを返します。
species アクセサープロパティは Map オブジェクトのデフォルトコンストラクターを返します。サブクラスのコンストラクターは、コンストラクターに代入して変更することによりオーバーライドすることができます。
species プロパティはデフォルトコンストラクター関数を返しますので、 Map オブジェクトには Map コンストラクターを返します。
Map[Symbol.species]; // function Map()
派生したコレクションオブジェクトの中では (例えばカスタムマップである MyMap)、 MyMap の species は MyMap コンストラクターになっています。しかし、これをオーバーライドして、派生クラスのメソッド内で親の Map オブジェクトを返したい場合があります。
class MyMap extends Map {
// Overwrite MyMap species to the parent Map constructor
static get [Symbol.species]() { return Map; }
}
| 仕様書 |
|---|
| {{SpecName('ESDraft', '#sec-get-map-@@species', 'get Map [ @@species ]')}} |
{{Compat("javascript.builtins.Map.@@species")}}