El objeto ArrayBuffer
se usa para representar un buffer genérico, de datos binarios crudos (raw) con una longitud específica. No se puede manipular directamente el contenido de un ArrayBuffer
; sin embargo, puedes crear uno de los arrays tipados o un objeto DataView
que representa el buffer en un formato especifico, y usarlo para leer y escribir el contenido del buffer.
Sintaxis
new ArrayBuffer(length)
Parámetros
length
- El tamaño en bytes, del array buffer que quieres crear.
Valor de retorno
Un nuevo objeto ArrayBuffer
de tamaño específico. Su contenido se inicializa a cero.
Excepciones
Se lanza un RangeError
si la longitud (length
) es mayor que Number.MAX_SAFE_INTEGER
(> = 2 ** 53) o negativa.
Descripción
El constructor de ArrayBuffer
crea un nuevo ArrayBuffer
del tamaño especificado en bytes.
Obtener un array buffer sobre datos existentes
Propiedades
ArrayBuffer.length
- El tamaño de constructor de
ArrayBuffer
cuyo valor es 1. get ArrayBuffer[@@species]
- La función de constructor que se usa para crear objetos derivados.
ArrayBuffer.prototype
- Permite añadir propiedades a todos los objetos
ArrayBuffer
.
Métodos
ArrayBuffer.isView(arg)
- Devuelve
true
siarg
es una de las vistas de ArrayBuffer, como pueden ser los arrays tipados o unDataView
. Sino devuelvefalse
. ArrayBuffer.transfer(oldBuffer [, newByteLength])
-
Devuelve un nuevo
ArrayBuffer
cuyo contenido se toma de los datos deoldBuffer
y luego es truncado o extendido por cero pornewByteLength
.
Instancias
Todas las instancias de ArrayBuffer
heredan de ArrayBuffer.prototype
.
Propiedades
- ArrayBuffer.prototype.constructor
- Especifica la función que se encarga de crear el prototipo del objeto. El valor inicial es el constructor incluido en el estándar
ArrayBuffer
. ArrayBuffer.prototype.byteLength
Read only- El tamaño, en bytes, del array. Este valor se establece al construir el objeto y no se puede modificar. Sólo lectura.
Métodos
ArrayBuffer.prototype.slice()
- Retorna un nuevo
ArrayBuffer
cuyo contenido es una copia los bytes de esteArrayBuffer
desdebegin
, incluido, hastaend
, no incluido. Sibegin
oend
son negativos, éstos hacen referencia a un índice que comienza a partir del final del array.
ArrayBuffer.slice()
- Tiene la misma funcionalidad que
ArrayBuffer.prototype.slice()
.
Ejemplo
En este ejemplo creamos un buffer de 8-bytes con una vista del tipo Int32Array
referenciando dicho buffer:
var buffer = new ArrayBuffer(8);
var view = new Int32Array(buffer);
Especificaciones
Especificación | Estado | Comentario |
---|---|---|
Typed Array Specification | Obsolete | Sustituida por ECMAScript 6. |
ECMAScript 2015 (6th Edition, ECMA-262) La definición de 'ArrayBuffer' en esta especificación. |
Standard | Definición inicial en un estándar ECMA. Especifica que new es obligatorio. |
ECMAScript (ECMA-262) La definición de 'ArrayBuffer' en esta especificación. |
Living Standard |
Compatibilidad con navegadores
BCD tables only load in the browser
Notas de compatibilidad
Desde el ECMAScript 2015, los constructores de ArrayBuffer
requieren ser instanciados usando el operador new
. Ejecutar el constructor de un ArrayBuffer
como una funciónsin el new
, lanzará un TypeError
de ahora en adelante.
var dv = ArrayBuffer(10);
// TypeError: llamar al constructor ArrayBuffer sin new está prohibido
var dv = new ArrayBuffer(10);