當我正在練習oop時,我正在失去焦點,我不知道如何繼續。 我有兩個代碼,我需要統一這兩個代碼。 我需要通過使用oop的方法來初始化svg的變量。通過使用js oop和svg繪圖循環
需要幫助。 謝謝。
function ArrayMaker(svgcx, svgcy ,svgr ,svgstroke ,svgstroke_width ,svgfill) {
this.svgcx = 100;
this.svgcy = 50;
this.svgr = 40;
this.svgstroke = "red";
this.svgstroke_width = 3;
this.svgfill = "yellow";
this.theArray = [ this, svgcx ,svgcy ,svgr ,svgstroke ,svgstroke_width ,svgfill ];
}
ArrayMaker.prototype = {
someMethod: function() {
alert('someMethod called');
},
getArray: function() {
return this.theArray;
}
};
var am = new ArrayMaker('one', 'two');
var other = new ArrayMaker('first', 'second');
alert(am.getArray());
此代碼工作:
var cx=100;
var cy=50;
var r=40;
var stroke="red";
var stroke_width=3;
var fill="yellow";
var htm = "<html>";
htm += "<head>";
htm += "<title>test3</title>";
htm += "</head>";
htm += "<body>";
htm += "<svg ";
htm += " version=";
htm += "\"1.1\"";
htm += ">";
htm += "<circle ";
htm += "cx="+cx+" ";
htm += "cy="+cy+" ";
htm += "r="+r+" ";
htm += "stroke="+stroke+" ";
htm += "stroke-width="+stroke_width+" ";
htm += "fill="+fill+" ";
htm += "/>";
htm += "</body>";
htm += "</html>";
document.write(htm);
你有任何想法乳清屬性不在svg命名空間?我有點困惑。 – david 2012-03-07 21:49:53
@david這就是XML的工作原理。從[命名空間崩潰課程](https://developer.mozilla.org/en/SVG/Namespaces_Crash_Course):_「默認情況下,屬性根本沒有命名空間,只知道它們是唯一的,因爲它們出現在一個本身具有唯一名稱的元素。「_ – Phrogz 2012-03-07 23:26:12
有趣的鏈接,謝謝。我發現奇怪的是,這些屬性並沒有採用默認的命名空間。 – david 2012-03-08 00:42:03