ArrayBuffer
được sử dụng để biểu diễn một bộ đệm dữ liệu nhị phân nguyên gốc có độ dài cố định. Ta không thể trực tiếp thay đổi nội dung của một ArrayBuffer
; mà thay vào đó là tạo ra một typed array objects hoặc một đối tượng DataView
đại diện cho bộ đệm với một định dạng cụ thể, và sử dụng nó để đọc và ghi nội dung của bộ đệm.The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
Cú pháp
new ArrayBuffer(length)
Tham số
length
- Kích thước tính theo bytes của bộ đệm mảng cần tạo
Giá trị trả về
Là một ArrayBuffer
mới có kích thước được chỉ định. Nội dung khởi tạo là 0.
Ngoại lệ
Lỗi RangeError
sẽ được đưa ra nếu length
lớn hơn Number.MAX_SAFE_INTEGER
(>= 2 ** 53) hoặc mang giá trị âm.
Mô tả
Hàm dựng ArrayBuffer
tạo ra một ArrayBuffer
dựa trên chiều dài đã cho tính theo byte
Lấy một mảng đệm từ dữ liệu hiện có
Thuộc tính
ArrayBuffer.length
- Thuộc tính chiều dài của hàm dựng của
ArrayBuffer
có giá trị là 1. get ArrayBuffer[@@species]
- Hàm dựng để tạo ra các đối tượng kế thừa
ArrayBuffer.prototype
- Cho phép bổ sung các thuộc tính cho tất cả các đối tượng
ArrayBuffer
.
Phương thức
ArrayBuffer.isView(arg)
- Trả về
true
nếu tham sốarg
là một trong các views của ArrayBuffer, ví dụ như typed array objects hoặcDataView
. Trả vềfalse
trong trường hợp ngược lại. ArrayBuffer.transfer(oldBuffer [, newByteLength])
-
Trả về một
ArrayBuffer
nội dung lấy từ dữ liệu củaoldBuffer
và sau đó được cắt bớt hoặc không mở rộng thông quanewByteLength
.
Thực thể
Tất cả các thực thể của ArrayBuffer
đều kế thừa từ ArrayBuffer.prototype
.
Thuộc tính
Phương thức
ArrayBuffer.slice()
- Cùng chức năng như
ArrayBuffer.prototype.slice()
.
Ví dụ
Ví dụu sau tạo ra một vùng đệm 8 byte với view của Int32Array
?trỏ đến bộ đệm
var buffer = new ArrayBuffer(8);
var view = new Int32Array(buffer);
Đặc tả
Đặc tả | Trạng thái | Ghi chú |
---|---|---|
Typed Array Specification | Obsolete | ?Thay thế bởi ECMAScript 6. |
ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'ArrayBuffer' in that specification. |
Standard | Initial definition in an ECMA standard. Specified that new is required. |
ECMAScript (ECMA-262) The definition of 'ArrayBuffer' in that specification. |
Living Standard |
Trình duyệt tương thích
BCD tables only load in the browser
Ghi chú thêm về tính tương thích
Với ECMAScript 2015, hàm dựng ArrayBuffer
cần được khởi tạo với new
. Việc gọi một hàm dựng ArrayBuffer
nhưng một hàm thông thường không có toán tử new
sẽ gây ra lỗi TypeError
.
var dv = ArrayBuffer(10);
// TypeError: calling a builtin ArrayBuffer constructor
// without new is forbidden
var dv = new ArrayBuffer(10);