2017-01-16 19 views
2

私は継承の例を作っています。 abcpqrのすべてのプロパティにアクセスしたいので、Object.createを使用しました。しかしgetr()関数を呼び出している間に私はrの値を得ることができません。私は間違って何をしていますか?なぜプロトタイプで定義している間に関数を呼び出せないのですか?

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

:これらのステートメントの順序を入れ替えます。 – vlaz

答えて

2

あなたがgetr()を作成後pqr.prototypeを上書きするので、問題があります。それは動作しませんなぜあなたはそれ故に、pqr` `のプロトタイプに` GETRを() `添付し、そのプロトタイプ_overwrite_

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

関連する問題