假设我有
function Point(x, y)
{
this.X = x;
this.Y = y;
}
我想要上 Point2 课。使用this和 this我想出了这段代码:
function Point2(x, y)
{
this.X = x; // <-
this.Y = y; // <-
}
Point2.prototype = new Point();
Point2.prototype.constructor = Point;
但是,如果我有很多变量或很多继承,我不想一直重复属性的分配(请参阅带有 <-
的行。如果我这样写,就像第二个中所说的那样链接:
Point2.call(this);
,我收到一个错误:超出最大调用堆栈大小,因为它调用自身,这从一开始就对我来说很可疑。
那么,有没有办法使用相同的传入值调用父构造函数,而不是重复整个代码?
最佳答案
您需要调用父级构造函数,而不是您自己的构造函数:
Point.call(this, x, y);
如果参数始终相同,也可以编写Point.apply(this,arguments);
关于Javascript 使用变量继承构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18322447/