javascript – 使用自定义属性扩展到对象的结构js丢失默认属性
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 使用自定义属性扩展到对象的结构js丢失默认属性,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1893字,纯文字阅读大概需要3分钟。
内容图文
![javascript – 使用自定义属性扩展到对象的结构js丢失默认属性](/upload/InfoBanner/zyjiaocheng/789/268d6fd731004fee930e802caf7ed769.jpg)
发布这个我一直在这里和其他很多地方一样,但我可以完全开始工作.
我只需要能够在所有形状中保存一些自定义属性.属性是:uuid和rt_attributes.
因此,通过手册我添加了这段代码:
fabric.Object.prototype.toObject = (function(toObject) {
console.log(toObject)
return function() {
return fabric.util.object.extend(toObject.call(this), {
uuid: this.uuid,
rt_attributes: this.rt_attributes
});
};
})(fabric.Object.prototype.toObject);
哪种方法可以正常工作,达到一定程度.
当我在json中序列化并加载时,问题就来了.
自定义属性在,但像IText这样的形状会引发异常,例如:
fabric.js:22199 Uncaught TypeError: Cannot read property 'split' of undefined
查看转储的json,我可以看到.text属性未导出.所以我担心覆盖toObject会失去默认对象的一些自定义属性.
当然,我可以在我的toObject函数中重新定义它所有缺少的修剪,但我尽管如此
fabric.util.object.extend
我会这样做的.
有人能指出我做错了吗?
谢谢.
L.
P.S
这里是结果json的片段:
{"type":"i- text","originX":"left","originY":"top","left":29,"top":677,"width":107,"height":22.6,"fill":"rgba(255,255,255,1)","stroke":null,"strokeWidth":1,"strokeDashArray":null,"strokeLineCap":"butt","strokeLineJoin":"miter","strokeMiterLimit":10,"scaleX":1,"scaleY":1,"angle":0,"flipX":false,"flipY":false,"opacity":1,"shadow":null,"visible":true,"clipTo":null,"backgroundColor":"","fillRule":"nonzero","globalCompositeOperation":"source-over","transformMatrix":null,"skewX":0,"skewY":0,"uuid":"04af6ab4-4eb1-432b-f46a-93b11a92292d","rt_attributes":[["fontFamily","text"],["fontSize","int"],["fill","color"],["opacity","float"],["top","int"],["left","int"]],"styles":{}},
你可以看到没有文本字段.但是uuid和rt_attributes都在.
解决方法:
终于找到了正确的方法:
fabric.Object.prototype.toObject = (function (toObject) {
return function (propertiesToInclude) {
propertiesToInclude = (propertiesToInclude || []).concat(
['uuid','rt_attributes']
);
return toObject.apply(this, [propertiesToInclude]);
};
})(fabric.Object.prototype.toObject);
内容总结
以上是互联网集市为您收集整理的javascript – 使用自定义属性扩展到对象的结构js丢失默认属性全部内容,希望文章能够帮你解决javascript – 使用自定义属性扩展到对象的结构js丢失默认属性所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。