我有一个ArrayBuffer
,我想从中得到两个单独的Uint8Array
副本。我通过在Uint8Array
上使用ArrayBuffer
构造函数两次来尝试此操作。构造的数组实例不相等。但是,当您更改一个时,它也会以相同的方式更改另一个。这怎么可能?为什么会这样呢?
另一方面,如果从构造的Uint8Array
构造新的Uint8Array
,则它们将在功能上如预期的那样分离。
最佳答案
TypedArray内部的条目实际上存储在基础缓冲区中,如果您获取/设置数组,则它将对缓冲区进行读/写操作。如果从另一个TypedArray创建TypedArray,则将复制基础缓冲区,因此将不链接数组。
array.buffer === array1.buffer // true
array1.buffer === array2.buffer // false
关于javascript - 从ArrayBuffer构造时,两个不相等的Uint8Array如何相互影响?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54372623/