Set[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.

Set[Symbol.species] 静的アクセサープロパティは、Set オブジェクトのコピー方法を指定する未使用のアクセサープロパティです。

構文

js
Set[Symbol.species]

返値

get [Symbol.species] が呼び出されたコンストラクター (this) の値です。この返値は、コピーされた Set インスタンスを生成するために使用されます。

解説

[Symbol.species] アクセサープロパティは、 Set オブジェクトの既定のコンストラクターを返します。サブクラスのコンストラクターはコンストラクターに代入することで、これをオーバーライドすることができます。

メモ: このプロパティは現在、 Set のどのメソッドでも使用されていません。

通常のオブジェクトの species

[Symbol.species] プロパティは、既定のコンストラクター関数、すなわち SetSet コンストラクターを返します。

js
Set[Symbol.species]; // Set() 関数

派生オブジェクトの species

独自の Set のサブクラス、例えば MySet のインスタンス内では、 MySet の species は MySet コンストラクターです。しかし、派生クラスのメソッドで、親である Set オブジェクトを返すためにこれをオーバーライドしたいかもしれません。

js
class MySet extends Set {
  // MySet species を親である Set コンストラクターにオーバーライド。
  static get [Symbol.species]() {
    return Set;
  }
}

仕様書

Specification
ECMAScript Language Specification
# sec-get-set-%symbol.species%

ブラウザーの互換性

BCD tables only load in the browser

関連情報