get SharedArrayBuffer[@@species] - JavaScript SharedArrayBuffer 对象
get SharedArrayBuffer[@@species]
SharedArrayBuffer[@@species]
访问器属性返回用于从SharedArrayBuffer
方法构造返回值的构造函数。
@@species
的存在允许执行任意代码,并可能会造成安全漏洞。这也使得某些优化变得更加困难。引擎实现者正在调查是否删除此功能。尽可能避免依赖它。Syntax
SharedArrayBuffer[Symbol.species]
返回值:调用了get@@species
的构造函数(this
)的值。返回值用于从创建新数组缓冲区的数组缓冲区方法构造返回值。
描述
@@species
访问器属性返回SharedArray Buffer
对象的默认构造函数。子类构造函数可以重写它以更改构造函数赋值。默认实现基本上是:
// Hypothetical underlying implementation for illustration class SharedArrayBuffer { static get [Symbol.species]() { return this; } }
由于这种多态实现,派生子类的@@species
默认情况下也会返回构造函数本身。
class SubArrayBuffer extends SharedArrayBuffer {} SubArrayBuffer[Symbol.species] === SharedArrayBuffer; // true
当调用不改变现有数组但返回新数组缓冲区实例的数组缓冲区方法(例如,slice()
)时,将访问数组的构造函数[@@species]
。返回的构造函数将用于构造数组缓冲区方法的返回值。
实例
Species in ordinary objects
@@species
属性返回默认构造函数函数,该函数是SharedArray Buffer
的SharedArrayBuffer
构造函数。
SharedArrayBuffer[Symbol.species]; // function SharedArrayBuffer()
Species in derived objects
在自定义SharedArray Buffer
子类的实例中,例如MySharedArray Buffer
,MySharedArrayBuffer
species是mySharedArray Buffer
构造函数。但是,为了在派生类方法中返回父级SharedArrayBuffer
对象,您可能需要覆盖此对象:
class MySharedArrayBuffer extends SharedArrayBuffer { // Overwrite MySharedArrayBuffer species to the parent SharedArrayBuffer constructor static get [Symbol.species]() { return SharedArrayBuffer; } }
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!