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
(>= 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]
- Funkcja konstruktora jest używana do tworzenia dostarczanych obiektów.
ArrayBuffer.prototype
- Pozwala dodać właściwości do wszystkich obiektów
ArrayBuffer
.
Metody
ArrayBuffer.isView(arg)
- Zwraca
true
, jeśliarg
jest jednym z widokówArrayBuffer
, jak obiektytypedArray
lubDataView
. W innych przypadkach zwracafalse
. ArrayBuffer.transfer(oldBuffer [, newByteLength])
-
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
.
Właściwości
- ArrayBuffer.prototype.constructor
- Specifies the function that creates an object's prototype. The initial value is the standard built-in
ArrayBuffer
constructor. ArrayBuffer.prototype.byteLength
Read only- The size, in bytes, of the array. This is established when the array is constructed and cannot be changed. Read only.
Metody
ArrayBuffer.prototype.slice()
- Returns a new
ArrayBuffer
whose contents are a copy of thisArrayBuffer
's bytes frombegin
, inclusive, up toend
, exclusive. If eitherbegin
orend
is negative, it refers to an index from the end of the array, as opposed to from the beginning.
ArrayBuffer.slice()
- Posiada tę samą funkcjonalność, jak
ArrayBuffer.prototype.slice()
.
Przykłady
W niniejszym przykładzie tworzymy 8-bajtowy buffer z widokiem Int32Array
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 Latest Draft (ECMA-262) The definition of 'ArrayBuffer' in that specification. |
Draft |
Kompatybilność z przeglądarkami
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() |
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() |
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);