为什么我在原型中定义时无法调用函数?

时间:2017-01-16 10:15:40

标签: javascript jquery inheritance

我正在做一个继承的例子。我想访问abcpqr的所有属性,因此我使用了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());




1 个答案:

答案 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());