javascript - 展开 Fabric.js 中的 stateProperties

标签 javascript prototype expand fabricjs

我想扩展 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/

相关文章:

javascript - 在 PEG.js 上为 STRING.STRING.STRING 制作语法表达式

javascript - Google map API v3 - 是否可以添加非特定位置,例如大陆或国家?

javascript - 编辑日期对象Javascript

javascript - JavaScript 中 Function.prototype 和 Object.prototype 的区别

html - 如何在悬停时展开 div 及其内容?

image - flutter 行 : Dynamic Height & Vertical Stretch

JavaFx TreeCell如何在一秒后展开节点

javascript - 在单击或悬停在任何地方之前,Angular 5 不会渲染组件

javascript - localStorage 是否只有在 DOM 准备好后才完全加载?

javascript - 属性复制到继承类型的目的