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śliargjest jednym z widokówArrayBuffer, jak obiektytypedArraylubDataView. 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 (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)- 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 | 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);