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)