我想製作一個小形狀輔助對象來幫助我在html 5畫布上繪製形狀。到目前爲止,我已經;javascript中的形狀類?
var Shape = function (config) {
this.initialize(config);
};
var proto = Shape.prototype;
proto.initialize = function (config) {
this.x = config.x || 0;
this.y = config.y || 0;
this.width = config.width || 0;
this.height = config.height || 0;
this.color = config.color || false;
};
/*
Circle
*/
var Circle = function (config) {
this.initialize(config);
};
proto = Circle.prototype;
proto = new Shape();
但它似乎並沒有工作!當我打電話來創建一個像這樣的新圈子;
var s1 = new Circle({x: 10, y: 10, width: 10, height: 10, color: "red"});
如何創建一個基類Shape
,這將有助於建立其他形狀,並分配形狀應具有一些共同的特性,例如,Circle
,Rect
ECT?
我努力學習JavaScript,所以如果代碼是遙遠請解釋原因,我怎麼能更好的IT,
感謝。
有什麼用'一個Circle.prototype =新形狀()'可能存在的問題?我經常看到這種代碼,主要是在沒有實現ES5的瀏覽器時。 – 2013-04-08 00:26:01
將原型存儲在變量中不是一個好主意嗎? – user2251919 2013-04-08 00:27:18
@ user2251919對象通過引用傳遞。您正在存儲對'proto'變量中的'Circle.prototype'對象的引用。將一個新對象指定給'proto'不會影響'Circle.prototype',而是隻爲'proto'變量指定一個新的引用。 SLaks在答案的第一部分解釋它。 – 2013-04-08 00:30:02