Array[@@species]访问器属性返回 Array 的构造函数。
Array[Symbol.species]
Array 的构造函数。
species 属性返回 Array 对象的默认构造函数。
子类的构造函数会覆盖和改变构造函数的指向。
species 属性返回默认构造函数, 它用于 Array 对象的构造函数 Array:
Array[Symbol.species]; // function Array()
在继承类的对象中 (例如你自定义的数组 MyArray), MyArray 的 species 属性返回的是 MyArray 这个构造函数. 然而你可能想要覆盖它,以便在你继承的对象 MyArray 中返回父类的构造函数 Array :
class MyArray extends Array {
// 重写 MyArray 的 species 属性到父类 Array 的构造函数
static get [Symbol.species]() { return Array; }
}
| Specification | Status | Comment |
|---|---|---|
| ECMAScript 2015 (6th Edition, ECMA-262) get Array [ @@species ] |
Standard | Initial definition. |
| ECMAScript Latest Draft (ECMA-262) get Array [ @@species ] |
Draft |
| Desktop | Mobile | Server | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@species | Chrome ? | Edge No support No | Firefox Full support 48 | IE ? | Opera ? | Safari ? | WebView Android ? | Chrome Android ? | Edge Mobile ? | Firefox Android Full support 48 | Opera Android ? | Safari iOS ? | Samsung Internet Android ? | nodejs
Full support
6.5.0
|