JavaScript Symbol species Property

JavaScript Symbol species property specifies a function-valued property that the constructor function uses to create derived objects. With this, we can create a derived object.

Syntax:

[Symbol.species]

Property attributes: The species accessor property can be used to allow subclasses to override the default constructor for objects.

Return value: It returns a derived object.

Below examples illustrate the Symbol species property in JavaScript:

Example 1:

Javascript




class geek extends Array {
    static get[Symbol.species]() {
        return Array;
    }
}
  
const a = new geek(1, 2, 3, 4);
const mapped = a.map((x) => 2);
console.log(mapped instanceof geek);
console.log(mapped instanceof geek);


Output:

false
false

Example 2:

Javascript




class geek extends Array {
    static get[Symbol.species]() {
        return Array;
    }
}
let a = new geek(1, 2, 3, 5, 7, 8);
let mapped = a.map((x) => x);
  
console.log(mapped instanceof geek);
console.log(mapped instanceof Array);


Output:

false
true

Supported Browsers: The browsers supported by JavaScript Symbol species property are listed below:

  • Google Chrome 51
  • Firefox 50
  • Edge 15
  • Opera
  • Apple Safari

We have a complete list of Javascript symbols’ properties and methods, to check those please go through the Javascript Symbol Complete Reference article.


Contact Us