--- title: ArrayBuffer slug: Web/JavaScript/Reference/Global_Objects/ArrayBuffer tags: - ArrayBuffer - JavaScript - Konstruktor - TypedArrays translation_of: Web/JavaScript/Reference/Global_Objects/ArrayBuffer original_slug: Web/JavaScript/Referencje/Obiekty/ArrayBuffer ---
{{JSRef}}

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 {{jsxref("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

{{jsxref("RangeError")}} pojawi się, jeśli długość (length) jest większa niż {{jsxref("Number.MAX_SAFE_INTEGER")}} (>= 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.
{{jsxref("ArrayBuffer.@@species", "get ArrayBuffer[@@species]")}}
Funkcja konstruktora jest używana do tworzenia dostarczanych obiektów.
{{jsxref("ArrayBuffer.prototype")}}
Pozwala dodać właściwości do wszystkich obiektów ArrayBuffer.

Metody

{{jsxref("ArrayBuffer.isView", "ArrayBuffer.isView(arg)")}}
Zwraca true, jeśli arg jest jednym z widoków ArrayBuffer, jak obiekty typedArray lub {{jsxref("DataView")}}. W innych przypadkach zwraca false.
{{jsxref("ArrayBuffer.transfer", "ArrayBuffer.transfer(oldBuffer [, newByteLength])")}} {{experimental_inline}}
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 {{jsxref("ArrayBuffer.prototype")}}.

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')}}

{{jsxref("ArrayBuffer.slice()")}} {{non-standard_inline}}
Posiada tę samą funkcjonalność, jak {{jsxref("ArrayBuffer.prototype.slice()")}}.

Przykłady

W niniejszym przykładzie tworzymy 8-bajtowy buffer z widokiem {{jsxref("Global_Objects/Int32Array", "Int32Array")}} odnoszącym się do buffera:

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

Specyfikacje

Specyfikacja Status Komentarz
{{SpecName('Typed Array')}} {{Spec2('Typed Array')}} Zastępiony przez ECMAScript 6.
{{SpecName('ES6', '#sec-arraybuffer-constructor', 'ArrayBuffer')}} {{Spec2('ES6')}} Definicja początkowa w standardzie ECMA. Zgłasza, że wymagany jest new.
{{SpecName('ESDraft', '#sec-arraybuffer-constructor', 'ArrayBuffer')}} {{Spec2('ESDraft')}}  

Kompatybilność z przeglądarkami

{{CompatibilityTable}}

Cecha Chrome Firefox (Gecko) Internet Explorer Opera Safari
Wsparcie podstawowe 7.0 {{CompatGeckoDesktop("2")}} 10 11.6 5.1
ArrayBuffer() bez odsyłacza new {{CompatUnknown}} {{CompatGeckoDesktop("44")}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}}
ArrayBuffer.slice() {{non-standard_inline}} {{CompatNo}} {{CompatVersionUnknown}}
{{CompatNo}} {{CompatGeckoDesktop("53")}}
{{CompatNo}} {{CompatNo}} {{CompatUnknown}}
Cecha Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Wsparcie podstawowe 4.0 {{CompatVersionUnknown}} {{CompatGeckoMobile("2")}} 10 11.6 4.2
ArrayBuffer() bez odsyłacza new {{CompatUnknown}} {{CompatUnknown}} {{CompatGeckoMobile("44")}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}}
ArrayBuffer.slice() {{non-standard_inline}} {{CompatNo}} {{CompatNo}} {{CompatVersionUnknown}}
{{CompatNo}} {{CompatGeckoMobile("53")}}
{{CompatNo}} {{CompatNo}} {{CompatUnknown}}

Zapis kompatybilny

Od ECMAScript 2015 kontruktory ArrayBuffer muszą być tworzone poprzez operator {{jsxref("Operators/new", "new")}}. Wywoływanie kontruktora ArrayBuffer jako funkcji bez new zaskutkuje od teraz pojawieniem się {{jsxref("TypeError")}}.

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

Zobacz również