This page was translated from English by the community.Learn more and join the MDN Web Docs community.
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 сентябрь 2016 г..
Symbol.species— известный символ, позволяющий определить конструктор, использующийся для создания порождённых объектов.
Атрибуты свойстваSymbol.species | |
|---|---|
| Записываемое | нет |
| Перечисляемое | нет |
| Настраиваемое | нет |
In this article
Описание
СвойствоSymbol.species, содержащее аксессор (геттер), позволяет подклассам переопределить конструктор, используемый по умолчанию для создания новых объектов.
Примеры
Вам может понадобиться возвращать объекты типаArray в методах вашего производного классаMyArray. Например, при использовании метода вродеmap(), использующего конструктор по умолчанию, вам может потребоваться возвращать объект родительского типаArray, вместоMyArray. Символspecies позволит вам это сделать:
class MyArray extends Array { // Перегружаем species для использования родительского конструктора Array static get [Symbol.species]() { return Array; }}var a = new MyArray(1, 2, 3);var mapped = a.map((x) => x * x);console.log(mapped instanceof MyArray); // falseconsole.log(mapped instanceof Array); // trueСпецификации
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-symbol.species> |