オブジェクト向けJavaScriptの継承(一)クラス式継承
2304 ワード
引用する
オブジェクト向けプログラミング言語はいずれも
継承の方法クラス継承 コンストラクタ継承 組合せ継承 プロトタイプ継承 寄生式継承 寄生組合せ式継承 1.クラス継承
テストによりは、子のプロトタイプによって親を継承する例によって継承を実現する. 参照タイプは共通であり、値タイプはプライベートです.
次の節では、オブジェクト向けJavaScriptの継承(二)コンストラクション関数の継承について説明します
リファレンス個人ブログ JavaScript設計モード---張容銘著 注
私は类式の継承の少しの理解に対して、もしそこの解釈の问题があるならば、どうぞよろしくお愿いします、ありがとうございます!
オブジェクト向けプログラミング言語はいずれも
というメカニズムを有するが、JavaScriptはプロトタイプ(Prototype
)に基づくオブジェクト向けプログラミングであるため、その実現方式もプロトタイプ(Prototype
)に基づいて実現する.継承の方法
//
function SuperClass(){
//
this.superValue = true;
//
this.book = ['c','java','htnl']
}
//
SuperClass.prototype.getSuperValue =function(){
return this.superValue;
}
//
function SubClass(){
this.subValue = false;
}
//
SubClass.prototype = new SuperClass();
//
SubClass.prototype.getSubValue = function(){
return this.subValue;
}
//
var a = new SubClass();
var b = new SubClass();
console.log(a.getSubValue()); //false
console.log(a.getSuperValue()); //true
console.log(a.book);//["c", "java", "htnl"]
console.log(b.book);//["c", "java", "htnl"]
a.book.push('css');
console.log(a.book);//["c", "java", "htnl", "css"]
console.log(b.book);//["c", "java", "htnl", "css"]
console.log(a.getSuperValue())//true
console.log(b.getSuperValue())//true
a.superValue = 'a';
console.log(a.getSuperValue())//a
console.log(b.getSuperValue())//true
console.log(a.getSubValue())//false
console.log(b.getSubValue())//false
a.subValue = 'sub';
console.log(a.getSubValue())//sub
console.log(b.getSubValue())//false
テストにより
には次のような特徴があることがわかります. , a b . ( , )。 : book , subValue , , 2
: , , this ,this.superValue , a, a a `prototype`, , `"undefined"`, a.book.push('css'); b.book , book , a.superValue = 'a'; a superValue , `prototype` superValue , .
次の節では、オブジェクト向けJavaScriptの継承(二)コンストラクション関数の継承について説明します
リファレンス
私は类式の継承の少しの理解に対して、もしそこの解釈の问题があるならば、どうぞよろしくお愿いします、ありがとうございます!