hook 内部函数使元素能够直接携带额外属性 canvas
支持toJSON 和 loadFromJSON
导入导出的时候会自动携带上extraData数组
demo函数
varrect = newfabric.Rect({ top:100, left:100, width:60, height:70, fill:"red" // selectable: false }); rect.extraData = { msg:"2423423" }
发现一种更加有效的方法 只须要在导出的时候 增长导出数组this
canvas.toJSON(["extraData"])
如下代码能够放弃prototype
codecode
fabric.Object.prototype.toObject = (function(toObject) { return function() { return fabric.util.object.extend(toObject.call(this), { extraData:this.extraData }) } })(fabric.Object.prototype.toObject) fabric.Object._fromObject = (function(fromObject) { return function(className, object, callback, extraParam) { return fromObject.call(this,className, object, function(instance){ instance.extraData = object.extraData; callback && callback.call(this,instance) }, extraParam); } })(fabric.Object._fromObject)