Javascript 使用变量继承构造函数

标签 javascript oop object inheritance

假设我有

function Point(x, y)
{
    this.X = x;
    this.Y = y;
}

我想要上 Point2 课。使用thisthis我想出了这段代码:

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/

相关文章:

javascript - 如何在提交按钮上定义登录表单的路由

javascript - Jquery 自动建议不会更新新选择

javascript - 当值更改时更新与 &lt;input&gt; 元素关联的 DB 值

java - 面向对象设计/如何建立类结构

c++ - 如何将模板类用于容器的容器?

swift - 在观察者模式中,是在通知中传递数据更好,还是让观察者接触到单例?

javascript - 访问对象中的嵌套键并将它们与其他对象键进行比较,但第二个是对象数组

java - 如何返回持有类java的对象

javascript - 我的 json 值开箱即用。如何漂亮地打印这些值?

swift - 使用 Realm Swift 3.0.1 创建数据库