我有以下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
时,其num
和string
字段为undefined
:
> var child = new Child();
undefined
> child.num;
undefined
为什么构造函数不是设置Child
的属性?
答案 0 :(得分:1)
在Child
构造函数中,您对.call()
的调用缺少您希望发送给Parent
构造函数的参数。你应该改为:
function Child(num, string) {
Parent.call(this, num, string);
}
将所有参数发送到第一个参数之后的父类的构造函数。