如何向画布对象添加其他属性,以便对它们进行序列化/反序列化?例如,我想为我使用canvas.toJSON((获得的数据存储一个名称,并将其存储在服务器端。
这样扩展画布有意义吗?或者你会建议创建一个"元对象",其中包含我的额外数据和画布json的一个属性吗?
您可以将具有附加属性的数组传递到Canvas.toJSON()
方法中,如下所示:
const canvas = new fabric.Canvas('c')
canvas.myProp = 'MyCanvas'
const serializedCanvas = canvas.toJSON(['myProp'])
console.log(serializedCanvas.myProp) // 'MyCanvas'
请注意,在序列化过程中,这个数组也会传递到每个对象的_toObject()
方法中,因此将自定义属性列表保持在最低限度是有意义的。