`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 |

## 浏览器兼容性

The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.

Update compatibility data on GitHub

| Desktop | Mobile | Server
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | Android webview | Chrome for Android | Edge Mobile | Firefox for Android | Opera for Android | Safari on iOS | Samsung Internet | Node.js
`@@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 Full support 6.5.0 Full support 6.0.0 Disabled Disabled From version 6.0.0: this feature is behind the `--harmony` runtime flag.

### Legend

Full support
  Full support
No support
  No support
Compatibility unknown
  Compatibility unknown
User must explicitly enable this feature.
  User must explicitly enable this feature.

## 参考

- `Array`
- `Symbol.species`