Set[@@species]

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

構文

js
Set[Symbol.species]

返値

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

解説

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

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

通常のオブジェクトの species

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

ブラウザーの互換性

BCD tables only load in the browser

関連情報