我有两个返回SVG对象的方法。第一个返回SVG,第二个返回SVG矩形。在第二种方法中,我想使用jquery.extend(true,...,..)
来组合对象。我希望返回对象是矩形SVG(来自第二种方法)。我没有在第一种方法中创建形状的原因是因为我只需要属性。我使用第二种方法(矩形)的形状。
方法1:
RedlineElement.prototype.exportSVG = function() {
var svg = document.createElement('SVG');
svg.setAttribute("stroke-opacity", this.getOpacity());
svg.setAttribute("stroke",this.getStrokeColor());
svg.setAttribute('stroke-width', this.getStrokeWidth());
svg.setAttribute("x", this.getOriginX());
svg.setAttribute("y", this.getOriginY());
return svg;
};
RedlineElementRectangle.prototype.exportSVG = function() {
var svgRect = "`http://www.w3.org/2000/svg`";
var rect = document.createElementNS(svgRect, 'rect');
rect.setAttributeNS(null, 'height', this.getHeight());
rect.setAttributeNS(null, 'width', this.getWidth());
rect.setAttributeNS(null, 'fillColor', this.getFillColor());
//custom SVG attributes
rect.setAttributeNS(null, 'version', 1);
rect.setAttributeNS(null, 'elementType', sap.ui.vk.Redline.ElementType.Rectangle)
return jQuery.extend(true, RedlineElement.prototype.exportSVG, rect);
};
但是这会随机返回一个非SVG矩形元素。