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 September 2016.
TheMap[Symbol.species] static accessor property is an unused accessor property specifying how to copyMap objects.
In this article
Syntax
Map[Symbol.species]Return value
The value of the constructor (this) on whichget [Symbol.species] was called. The return value is used to construct copiedMap instances.
Description
The[Symbol.species] accessor property returns the default constructor forMap objects. Subclass constructors may override it to change the constructor assignment.
Note:This property is currently unused by allMap methods.
Examples
>Species in ordinary objects
The[Symbol.species] property returns the default constructor function, which is theMap constructor forMap.
Map[Symbol.species]; // function Map()Species in derived objects
In an instance of a customMap subclass, such asMyMap, theMyMap species is theMyMap constructor. However, you might want to overwrite this, in order to return parentMap objects in your derived class methods:
class MyMap extends Map { // Overwrite MyMap species to the parent Map constructor static get [Symbol.species]() { return Map; }}Specifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-get-map-%symbol.species%> |