javascript - javascript中的形状类?

标签 javascript prototype

我正在尝试制作一个小的形状辅助对象来帮助我在 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 来帮助设置其他形状并分配一些形状应具有的常见属性,例如 CircleRect 等等?

我正在尝试学习 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/

相关文章:

javascript - 我如何使用 Controller 中的 ng-class 变量?

javascript - 在闭包内声明的类与没有闭包的标准类

javascript - 在环回中使用原型(prototype)创建实例方法时出现问题

javascript - Javascript 中原型(prototype)的使用

Javascript 嵌套原型(prototype)方法范围

javascript - 当页面回发 ASP.NET 时,时间选择器 javascript 停止工作

javascript - 1974 年 Javascript 中的夏令时?

javascript - A-Frame/THREE.js,简化 gltf[glb] 模型上的修改器

javascript - 如果 .find() mongoose 没有找到任何东西,请执行某些操作

javascript - 用另一个原型(prototype)扩展原型(prototype)