ArrayBuffer

Objekt ArrayBuffer reprezentuje buffer z surowymi danymi binarnymi o niezmiennej długości. Nie możesz bezpośrednio wpływać na zawartość obiektu ArrayBuffer, możesz natomiast stworzyć jeden z obiektów typedArray lub obiekt DataView reprezentujący buffer w specjalnym formacie i używać tego obiektu do odczytu oraz zapisu treści buffera.

Składnia

new ArrayBuffer(length)

Parametry

długość(length)
Rozmiar, w bajtach, tworzony z bufferu tablicy (array buffer).

Wartość zwrócona

Nowy obiekt ArrayBuffer o określonym rozmiarze. Jego wartości początkowe wynoszą 0.

Wyjątki

RangeError pojawi się, jeśli długość (length) jest większa niż Number.MAX_SAFE_INTEGER (en-US) (>= 2 ** 53) lub ujemna.

Opis

Konstruktor ArrayBuffer tworzy nowy ArrayBuffer z podanej długości (length) w bajtach.

Otrzymywanie bufferu tablicy z istniejących danych

Właściwości

ArrayBuffer.length
Właściwość długości konstruktura ArrayBuffer, której wartość wynosi 1.
get ArrayBuffer[@@species] (en-US)
Funkcja konstruktora jest używana do tworzenia dostarczanych obiektów.
ArrayBuffer.prototype (en-US)
Pozwala dodać właściwości do wszystkich obiektów ArrayBuffer.

Metody

ArrayBuffer.isView(arg) (en-US)
Zwraca true, jeśli arg jest jednym z widoków ArrayBuffer, jak obiekty typedArray lub DataView. W innych przypadkach zwraca false.
ArrayBuffer.transfer(oldBuffer [, newByteLength]) This is an experimental API that should not be used in production code.
Zwraca nowy ArrayBuffer, którego zawartości są pobrane z danych oldBuffer. Następnie zostaje skrócony lub przedłużony od 0 przez newByteLength.

Instancje ArrayBuffer

Wszystkie instancje ArrayBuffer dziedziczą z ArrayBuffer.prototype (en-US).

Właściwości

{{page('en-US/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/prototype','Properties')}}

Metody

{{page('en-US/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/prototype','Methods')}}

ArrayBuffer.slice() (en-US) This API has not been standardized.
Posiada tę samą funkcjonalność, jak ArrayBuffer.prototype.slice() (en-US).

Przykłady

W niniejszym przykładzie tworzymy 8-bajtowy buffer z widokiem Int32Array (en-US) odnoszącym się do buffera:

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

Specyfikacje

Specyfikacja Status Komentarz
Typed Array Specification Obsolete Zastępiony przez ECMAScript 6.
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'ArrayBuffer' in that specification.
Standard Definicja początkowa w standardzie ECMA. Zgłasza, że wymagany jest new.
ECMAScript (ECMA-262)
The definition of 'ArrayBuffer' in that specification.
Living Standard  

Kompatybilność z przeglądarkami

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help! (en-US)

Cecha Chrome Firefox (Gecko) Internet Explorer Opera Safari
Wsparcie podstawowe 7.0 4.0 (2) 10 11.6 5.1
ArrayBuffer() bez odsyłacza new ? 44 (44) ? ? ?
ArrayBuffer.slice() This API has not been standardized. No support (Yes)
No support 53 (53)
No support No support ?
Cecha Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Wsparcie podstawowe 4.0 (Yes) 4.0 (2) 10 11.6 4.2
ArrayBuffer() bez odsyłacza new ? ? 44.0 (44) ? ? ?
ArrayBuffer.slice() This API has not been standardized. No support No support (Yes)
No support 53.0 (53)
No support No support ?

Zapis kompatybilny

Od ECMAScript 2015 kontruktory ArrayBuffer muszą być tworzone poprzez operator new. Wywoływanie kontruktora ArrayBuffer jako funkcji bez new zaskutkuje od teraz pojawieniem się TypeError.

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

Zobacz również