--- title: ArrayBuffer.prototype.slice() slug: Web/JavaScript/Reference/Global_Objects/ArrayBuffer/slice translation_of: Web/JavaScript/Reference/Global_Objects/ArrayBuffer/slice --- <div>{{JSRef}}</div> <p><code><strong>slice()</strong></code>方法返回一个新的 <code>ArrayBuffer</code> ,它的内容是这个<code>ArrayBuffer的</code>字节副本,从begin(包括),到end(不包括)。</p> <div>{{EmbedInteractiveExample("pages/js/arraybuffer-slice.html")}}</div> <h2 id="语法">语法</h2> <pre class="syntaxbox">arraybuffer.slice(begin[, end])</pre> <h3 id="参数">参数</h3> <dl> <dt><code>begin</code></dt> <dd>从零开始的字节索引,切片从这开始。</dd> <dt><code>end</code></dt> <dd>结束切片的字节索引。如果没指定end,新的 <code>ArrayBuffer</code> 将包含这个 <code>ArrayBuffer</code> 从头到尾的所有字节。由begin和end指定的这个范围夹在当前数组的有效索引范围内。如果新<code>ArrayBuffer</code>的长度在计算后为负,它将强制为0 。</dd> </dl> <h3 id="返回值">返回值</h3> <p> 一个新的 <code>ArrayBuffer</code> 对象。</p> <h2 id="描述">描述</h2> <p><code>slice</code> 方法复制到但不包括由end参数指示的字节。如果begin或end是负数,则指的是从数组末尾开始的索引,而不是从头开始。</p> <h2 id="示例">示例</h2> <h3 id="复制一个_ArrayBuffer">复制一个 <code>ArrayBuffer</code></h3> <pre class="brush: js">var buf1 = new ArrayBuffer(8); var buf2 = buf1.slice(0); </pre> <h2 id="规范">规范</h2> <table class="standard-table"> <tbody> <tr> <th scope="col">Specification</th> <th scope="col">Status</th> <th scope="col">Comment</th> </tr> <tr> <td>{{SpecName('Typed Array')}}</td> <td>{{Spec2('Typed Array')}}</td> <td>Superseded by EMCAScript 6.</td> </tr> <tr> <td>{{SpecName('ES6', '#sec-arraybuffer.prototype.slice', 'ArrayBuffer.prototype.slice')}}</td> <td>{{Spec2('ES6')}}</td> <td>Initial definition in an ECMA standard.</td> </tr> <tr> <td>{{SpecName('ESDraft', '#sec-arraybuffer.prototype.slice', 'ArrayBuffer.prototype.slice')}}</td> <td>{{Spec2('ESDraft')}}</td> <td> </td> </tr> </tbody> </table> <h2 id="浏览器兼容性">浏览器兼容性</h2> <p>{{Compat("javascript.builtins.ArrayBuffer.slice")}}</p> <h2 id="相关链接">相关链接</h2> <ul> <li>{{jsxref("ArrayBuffer")}}</li> </ul>