我有一个ArrayBuffer,我想从中得到两个单独的Uint8Array副本。我通过在Uint8Array上使用ArrayBuffer构造函数两次来尝试此操作。构造的数组实例不相等。但是,当您更改一个时,它也会以相同的方式更改另一个。这怎么可能?为什么会这样呢?

javascript - 从ArrayBuffer构造时,两个不相等的Uint8Array如何相互影响?-LMLPHP

另一方面,如果从构造的Uint8Array构造新的Uint8Array,则它们将在功能上如预期的那样分离。

javascript - 从ArrayBuffer构造时,两个不相等的Uint8Array如何相互影响?-LMLPHP

最佳答案

TypedArray内部的条目实际上存储在基础缓冲区中,如果您获取/设置数组,则它将对缓冲区进行读/写操作。如果从另一个TypedArray创建TypedArray,则将复制基础缓冲区,因此将不链接数组。

 array.buffer === array1.buffer // true
 array1.buffer === array2.buffer // false

关于javascript - 从ArrayBuffer构造时,两个不相等的Uint8Array如何相互影响?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54372623/

10-09 07:45