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® 2025 Language Specification
# sec-get-map-%symbol.species%

ブラウザーの互換性

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
[Symbol.species]

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

関連情報