1

我想扩展 Fabric.js 的所有类,并使用一些也应该可序列化的属性。我是这样做的:

  var stateProps = fabric.Object.prototype.stateProperties;
  stateProps.splice(0,0,"name", "id", "creator", "dateTimeCreated");
  fabric.Object.prototype.stateProperties = stateProps;

它适用于没有问题的对象,但不幸的是,所有继承类的“stateProperties”有时会被原型“初始化”,并且没有提到我的新属性。

有没有办法在继承类的原型被初始化之前调用这些行?

4

1 回答 1

1

继承的“类”没有获得新属性的原因是因为它们是在声明期间构建的(当 Fabric 初始化时)。所以在那一点上,他们正在使用 的原始值fabric.Object.prototype.stateProperties

如果您的目标是在序列化输出中包含属性,请不要忘记您始终可以使用带有附加“propertiesToInclude”参数的 toJSON/toObject:

object.toJSON([ 'foo', 'bar' ]);
于 2013-10-31T17:17:52.167 回答