Я пытаюсь использовать Uint8Array для имитации байта [] или uint8 [].
TypedArray.subarray при создании нового представления существующего буфера изменения содержимого нового объекта будут воздействовать на исходный объект и наоборот.
Я всегда использую его так:
let u = new Uint8Array(8) //'u' is 8 bytes
let a = u.subarray(4) //'a' is 4 bytes
console.log(a) // show [0,0,0,0], it is ok
но когда я пытаюсь создать подкласс Uint8Array, подмассив становится странным.
class bytes extends Uint8Array {
constructor(arg) {
super(arg)
}
}
let b = new bytes(8) //'b' is 8 bytes
let c = b.subarray(4) //'c' should be 4 bytes, but is 8 bytes
console.log(c) // show [0,0,0,0,0,0,0,0], ??????
Я хочу знать, что случилось и как это исправить.