我有一个ArrayBuffer
,我想从中得到两个单独的Uint8Array
副本。我通过两次在Uint8Array
上使用ArrayBuffer
构造函数来尝试此操作。构造的数组实例不相等。但是,当您更改一个时,它也会以相同的方式更改另一个。这怎么可能?为什么会这样?
另一方面,如果从构造的Uint8Array
构造新的Uint8Array
,它们将在功能上如预期的那样分开。
答案 0 :(得分:2)
TypedArray内部的条目实际上存储在基础缓冲区中,如果获取/设置数组,则它会从缓冲区读取/写入数据。如果从另一个TypedArray创建一个TypedArray,则将复制基础缓冲区,因此将不会链接这些数组。
array.buffer === array1.buffer // true
array1.buffer === array2.buffer // false