在调用我的类的构造函数之后,其属性是未定义的

时间:2014-04-02 21:27:29

标签: javascript constructor

我有以下JavaScript:

function Parent(num, string) {
    this.num = num;
    this.string = string;
}

Parent.prototype.num = 0;
Parent.prototype.string = "";

function Child(num, string) {
    Parent.call(this);
}

Child.prototype = new Parent();
Child.prototype.constructor = Child;

当我创建新的Child时,其numstring字段为undefined

> var child = new Child();
undefined
> child.num;
undefined

为什么构造函数不是设置Child的属性?

1 个答案:

答案 0 :(得分:1)

Child构造函数中,您对.call()的调用缺少您希望发送给Parent构造函数的参数。你应该改为:

function Child(num, string) {
    Parent.call(this, num, string);
}

将所有参数发送到第一个参数之后的父类的构造函数。