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 September 2016.
TheSet[Symbol.species] static accessor property is an unused accessor property specifying how to copySet objects.
In this article
Syntax
Set[Symbol.species]Return value
The value of the constructor (this) on whichget [Symbol.species] was called. The return value is used to construct copiedSet instances.
Description
The[Symbol.species] accessor property returns the default constructor forSet objects. Subclass constructors may override it to change the constructor assignment.
Note:This property is currently unused by allSet methods.
Examples
>Species in ordinary objects
The[Symbol.species] property returns the default constructor function, which is theSet constructor forSet.
Set[Symbol.species]; // function Set()Species in derived objects
In an instance of a customSet subclass, such asMySet, theMySet species is theMySet constructor. However, you might want to overwrite this, in order to return parentSet objects in your derived class methods:
class MySet extends Set { // Overwrite MySet species to the parent Set constructor static get [Symbol.species]() { return Set; }}Specifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-get-set-%symbol.species%> |