我想扩展 Fabric.js 的所有类,其中包含一些也应该可序列化的属性。我是这样做的:
var stateProps = fabric.Object.prototype.stateProperties;
stateProps.splice(0,0,"name", "id", "creator", "dateTimeCreated");
fabric.Object.prototype.stateProperties = stateProps;
它适用于没有问题的对象,但不幸的是,所有继承类的“stateProperties”有时会为原型(prototype)“初始化”,并且没有提到我的新属性。
有什么方法可以在初始化继承类的原型(prototype)之前调用这些行吗?
最佳答案
继承的“类”没有获得新属性的原因是它们是在声明期间构建的(当 Fabric 初始化时)。因此,此时,他们使用的是 Fabric.Object.prototype.stateProperties 的原始值。
如果您的目标是在序列化输出中包含属性,请不要忘记您始终可以将 toJSON/toObject 与附加的“propertiesToInclude”参数一起使用:
object.toJSON([ 'foo', 'bar' ]);
关于javascript - 展开 Fabric.js 中的 stateProperties,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19709652/