gpt4 book ai didi

Javascript 原型(prototype) : Replacement vs Addition

转载 作者:行者123 更新时间:2023-11-30 12:44:35 25 4
gpt4 key购买 nike

<分区>

我正在使用一个相当简单的 Point2D 数据结构,我构建它是为了将来可以继承 Point3D 并且我已经遵循了我能找到的所有指南和类似问题,但似乎没有一个对我的问题有帮助。

我已将 Point2D 定义如下:

function Point2D (px, py)
{
this.x = px;
this.y = py;

Point2D.prototype =
{
constructor: Point2D,

move:function (mx, my)
{
this.x = mx;
this.y = my;
},
translate:function (dx, dy)
{
this.x += dx;
this.y += dy;
}
};
};

我实例化对象如下:

var p2d1 = new Point2D(2,3);

然后我调用其中一种方法如下:

p2d1.move(1,2);

结果是:

TypeError: Object #<Point2D> has no method 'move'

我不知道为什么我的方法无法解析。

我弄乱了好一阵子,发现我可以用这种方式声明 Point2D 方法,它们会起作用。

Point2D.prototype.move = function () {};

谁能解释为什么他们首先替换整个原型(prototype)的样式行得通,但是向现有原型(prototype)添加功能行吗?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com