我正在做一个继承的例子。我想访问abc
和pqr
的所有属性,因此我使用了Object.create
。但是,在调用r
函数时,我无法获得getr()
的值。我做错了什么?
function abc() {
this.a = 3;
}
abc.prototype.getA = function() {
return this.a
}
function pqr() {
abc.call(this);
this.r = 3;
}
pqr.prototype.getr = function() {
return this.r
}
pqr.prototype = Object.create(abc.prototype);
var n = new pqr();
console.log(n.getr());

答案 0 :(得分:2)
问题是因为您在创建pqr.prototype
之后覆盖了getr()
。交换这些陈述的顺序:
function abc() {
this.a = 3;
}
abc.prototype.getA = function() {
return this.a;
}
function pqr() {
abc.call(this);
this.r = 3;
}
pqr.prototype = Object.create(abc.prototype);
pqr.prototype.getr = function() {
return this.r;
}
var n = new pqr();
console.log(n.getr());