プロトタイプの継承の基本をクリアしようとしています。コンストラクタで設定されたプロパティがプロトタイプのプロパティをオーバーライドします
function thirdSampleObject(){
this.first_var = 3;
this.update = function(){"Hi I am a function"};
}
var thirdClass = new thirdSampleObject();
var fourthClass = new thirdSampleObject();
thirdClass.first_var = 5;
fourthClass.first_var = 7;
console.log(thirdClass.first_var); //returns 5
console.log(fourthClass.first_var); //returns 7
thirdSampleObject.prototype.first_var = 10;
console.log(thirdClass.first_var); //returns 5 "protectected" within it's own instance of the object
console.log(fourthClass.first_var); //returns 7 "protectected" within it's own instance of the object
var fithClass = new thirdSampleObject();
console.log(fithClass.first_var); //returns 3 ? Wouldn't this return 10 at this point?`
私は、プロトタイプの値を上書きするのでconsole.log(fithClass.first_var)
が10を返すことを期待します。ただし、元のプロトタイプ定義で設定された番号を返します。なぜか私の頭を包み込むことを試みている。
インスタンスプロパティを設定します。そのプロパティは、プロトタイプに設定されたプロパティを常に覆しています。 – Sirko
"コンストラクタで設定されたプロパティがプロトタイプのプロパティをオーバーライドしています"などの意味のあるタイトルを質問に付ける必要があります。 –
コンストラクタ内の割り当てはプロトタイプとは関係ありません。コンストラクタの 'this'の値は新しいオブジェクトであり、プロトタイプではありません。 – Pointy