我想制作一个小形状辅助对象来帮助我在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