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śliarg
jest jednym z widokówArrayBuffer
, jak obiektytypedArray
lubDataView
. W innych przypadkach zwracafalse
. ArrayBuffer.transfer(oldBuffer [, newByteLength])
Experimental-
Zwraca nowy
ArrayBuffer
, którego zawartości są pobrane z danycholdBuffer
. Następnie zostaje skrócony lub przedłużony od 0 przeznewByteLength
.
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) Non-Standard- 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
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()
Non-Standard
|
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);