--- title: SharedArrayBuffer.prototype.slice() slug: Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/slice tags: - SharedArrayBuffer - slice translation_of: Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/slice ---
SharedArrayBuffer.prototype.slice() 方法返回一个新的{{jsxref("SharedArrayBuffer")}} 副本,其内容是该SharedArrayBuffer的字节从begin开始(包含begin),直到end结束(不包含end)。如果begin或end是负的,它指的是从数组末尾开始的索引。此方法与 {{jsxref("Array.prototype.slice()")}} 具有相同的算法。
{{EmbedInteractiveExample("pages/js/sharedarraybuffer-slice.html")}}
sab.slice() sab.slice(begin) sab.slice(begin, end)
begin {{optional_inline}}slice(-2)提取序列中的最后两个元素。begin is undefined, slice begins from index 0.如果begin为undefined,slice则从索引为0处开始。end {{optional_inline}}slice 执行提取到索引为end的位置(不包含end)。slice(1,4)提取第二个元素到第四个元素(索引为1、2和3的元素)。slice(2,-1)提取序列中从第三个元素开始,到倒数第二个元素结束的全部元素。end,则slice一直提取到序列的末尾(sab.byteLength)。一个包含被提取出的元素的新 {{jsxref("SharedArrayBuffer")}} 。
var sab = new SharedArrayBuffer(1024);
sab.slice(); // SharedArrayBuffer { byteLength: 1024 }
sab.slice(2); // SharedArrayBuffer { byteLength: 1022 }
sab.slice(-2); // SharedArrayBuffer { byteLength: 2 }
sab.slice(0, 1); // SharedArrayBuffer { byteLength: 1 }
| Specification | Status | Comment |
|---|---|---|
| {{SpecName('ESDraft', '#sec-sharedarraybuffer.prototype.slice', 'SharedArrayBuffer.prototype.slice')}} | {{Spec2('ESDraft')}} | Initial definition in ES2017. |
{{Compat("javascript.builtins.SharedArrayBuffer.slice")}}