--- 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 ---
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.
new ArrayBuffer(length)
(length)Nowy obiekt ArrayBuffer o określonym rozmiarze. Jego wartości początkowe wynoszą 0.
{{jsxref("RangeError")}} pojawi się, jeśli długość (length) jest większa niż {{jsxref("Number.MAX_SAFE_INTEGER")}} (>= 2 ** 53) lub ujemna.
Konstruktor ArrayBuffer tworzy nowy ArrayBuffer z podanej długości (length) w bajtach.
ArrayBuffer.lengthArrayBuffer, której wartość wynosi 1.ArrayBuffer.true, jeśli arg jest jednym z widoków ArrayBuffer, jak obiekty typedArray lub {{jsxref("DataView")}}. W innych przypadkach zwraca false.ArrayBuffer, którego zawartości są pobrane z danych oldBuffer. Następnie zostaje skrócony lub przedłużony od 0 przez newByteLength.Instancje ArrayBufferWszystkie instancje ArrayBuffer dziedziczą z {{jsxref("ArrayBuffer.prototype")}}.
{{page('en-US/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/prototype','Properties')}}
{{page('en-US/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/prototype','Methods')}}
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);
| 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')}} |
{{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}} |
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);