我正在尝试制作一个小的形状辅助对象来帮助我在 html 5 Canvas 上绘制形状。到目前为止我有;
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
等等?
我正在尝试学习 javascript,所以如果代码有问题,请解释原因以及如何改进它,
谢谢。
最佳答案
proto = new Shape();
这会将 proto
变量分配给一个新的 Shape
实例。
它不会影响 Circle.prototype
,该变量之前恰好引用了它。
请注意,您正在运行 Shape()
构造函数来初始化 Circle 原型(prototype),这可能不是一个好主意。
相反,你可以写
Circle.prototype = Object.create(Shape.prototype);
此代码将创建一个继承Shape.prototype
的新对象,而不运行其构造函数。
关于javascript - javascript中的形状类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15869422/