get Map[@@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[@@species] は静的アクセサープロパティで、 Map オブジェクトをコピーする方法を示す未使用のアクセサープロパティです。

構文

js
Map[Symbol.species]

返値

get @@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-@@species

ブラウザーの互換性

BCD tables only load in the browser

関連情報