该 ArrayBuffer[@@species]
访问器属性会返回 ArrayBuffer
构造器。
ArrayBuffer[Symbol.species]
这个 species 访问器属性会返回默认的 ArrayBuffer
构造器。子类构造器可能会覆盖它以改变构造器赋值。
返回默认的 ArrayBuffer
构造器:
ArrayBuffer[Symbol.species]; // function ArrayBuffer()
在派生集合对象中(比如你定制的 array buffer MyArrayBuffer
),MyArrayBuffer
species 就是 MyArrayBuffer
构造器。但是,你可能想要在派生类里重写它,以期返回的是父类的 ArrayBuffer
对象:
class MyArrayBuffer extends ArrayBuffer {
// Overwrite MyArrayBuffer species to the parent ArrayBuffer constructor
static get [Symbol.species]() { return ArrayBuffer; }
}
Specification | Status | Comment |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) get ArrayBuffer [ @@species ] |
Standard | Initial definition. |
ECMAScript Latest Draft (ECMA-262) get ArrayBuffer [ @@species ] |
Draft |
Desktop | Mobile | Server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@species | Chrome ? | Edge Full support 13 | 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
|