Deep Clone ImageData JavaScript

时间:2017-07-02 14:31:10

标签: javascript oop

如何在JavaScript中深度克隆一个不是标准类型对象(如ImageData)的对象?它包含另一个类型为UInt64Array的对象,我也想要不引用单独的对象,而是完全复制它。

有关深度复制的所有其他问题仅涉及对象,数组等简单数据类型。这些方法(包括jQuery的扩展函数)不适用于其他数据类型。

当尝试使用jQuery的扩展(似乎能够复制最不同的类型)时,我只是得到一个标准对象,丢失了我需要的类型。 putImageData只接受ImageData对象。

1 个答案:

答案 0 :(得分:1)

imageData is a Uint8ClampedArray您可以使用TypedArray#from克隆它和其他数组。在大多数情况下,Array.from(TypedArray)会克隆它。



let imageData = new Uint8ClampedArray([1,2,3])
let arrayClone = Array.from(imageData)
let ui8caClone = Uint8ClampedArray.from(imageData)

arrayClone[0] = 5;
ui8caClone[0] = 9;