MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

Esta tradução está incompleta. Por favor, ajude a traduzir este artigo do Inglês.

ArrayBuffer é um objeto utilizado para representar um buffer de dados em binário de tamanho pré-definido. Não é possivel manipular o conteudo do buffer diretamente; em vez disso, tem de se criar um dos typed array objects ou um objeto DataView que representa um buffer num formato especifico, e usa-o para ler e escrever  o conteudo do buffer. 
 

Sintaxe

new ArrayBuffer(length)

Parametros

length
O tamanho, em bytes, do array buffer que se pretende criar.

Retorno

 Um novo objecto do tipo ArrayBuffer do tamanho especificado. O respetivo conteudo é inicializado a 0.

Excepções

A RangeError é lançada caso o tamanho (length) é maior do que Number.MAX_SAFE_INTEGER (>= 2 ** 53) ou caso seja negativo.

Descrição

O construtor de ArrayBuffer cria um novo objeto do tipo ArrayBuffer com o tamanho especificado em bytes.

Obter um array buffer a partir de dados existentes

Propriedades

ArrayBuffer.length
Propriedade length do construtor de  ArrayBuffer cujo valor é 1.
get ArrayBuffer[@@species]
A função do contrutor que é usado para criar objetos derivados.
ArrayBuffer.prototype
Permite adicionar novas propriedades a todos os objetos do tipo ArrayBuffer.

Métodos

ArrayBuffer.isView(arg)
Devolve true caso arg é  um tipo de representação do ArrayBuffer, como typed array objects ou DataView. Devolve false caso contrário
ArrayBuffer.transfer(oldBuffer [, newByteLength])
Devolve um novo objeto ArrayBuffer cujo conteúdo é obtido do oldBuffer e ou é truncado ou preenchido a zeros pelo  newByteLength.

Instâncias ArrayBuffer

Todas as instâncias de ArrayBuffer herdam de ArrayBuffer.prototype.

Propriedades

ArrayBuffer.prototype.constructor
Specifies the function that creates an object's prototype. The initial value is the standard built-in ArrayBuffer constructor.
ArrayBuffer.prototype.byteLength Read only
The size, in bytes, of the array. This is established when the array is constructed and cannot be changed. Read only.

Métodos

ArrayBuffer.prototype.slice()
Returns a new ArrayBuffer whose contents are a copy of this ArrayBuffer's bytes from begin, inclusive, up to end, exclusive. If either begin or end is negative, it refers to an index from the end of the array, as opposed to from the beginning.

ArrayBuffer.slice()
Tem a mesma funcionalidade que ArrayBuffer.prototype.slice().

Exemplo

Neste exemplo, criamos um buffer de 8 bytes com representação Int32Array a referênciar o buffer:

var buffer = new ArrayBuffer(8);
var view   = new Int32Array(buffer);

Especificação

Especificação Status Comentário
Typed Array Specification Obsolete Substituido por ECMAScript 6.
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'ArrayBuffer' in that specification.
Standard

Definição inicial no stardard da ECMA. Especificar que new era necessário.

ECMAScript 2017 Draft (ECMA-262)
The definition of 'ArrayBuffer' in that specification.
Draft  

Compatibilidade nos navegadores

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support 7.0 4.0 (2) 10 11.6 5.1
ArrayBuffer() without new throws ? 44 (44) ? ? ?
ArrayBuffer.slice() No support (Yes)
No support 53 (53)
No support No support ?
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support 4.0 (Yes) 4.0 (2) 10 11.6 4.2
ArrayBuffer() without new throws ? ? 44.0 (44) ? ? ?
ArrayBuffer.slice() No support No support (Yes)
No support 53.0 (53)
No support No support ?

Notas de compatibilidade

Com ECMAScript 2015, construtores de ArrayBuffer são obrigados a usar o operador new. Daqui adiante ao invocar ArrayBuffer como uma função sem new irá lançar uma exceção TypeError.

var dv = ArrayBuffer(10);
// TypeError: calling a builtin ArrayBuffer constructor 
// without new is forbidden
var dv = new ArrayBuffer(10);

Ver também

Etiquetas do documento e contribuidores

 Contribuidores para esta página: anguelov
 Última atualização por: anguelov,