JavaScriptの継承 - 継承されたプロトタイプチェーン

// プロトタイプチェーン継承
機能スーパータイプ(){
     この .nameの= 'スーパー' ;
     この .girlFriends = [ "Xiaoli"、 "Xiaowang" ]; 
} 
SuperType.prototype.sayName = 関数(){ 
    にconsole.log(この.nameの); 
} 
関数のサブタイプ(){
     この .age 20 =である; 
} 
// スーパー割り当てるサブタイプのプロトタイプのインスタンスを作成
// 本質的プロトタイプオブジェクトを書き換える実装の継承を、型の新しいインスタンスと交換 
SubType.prototype = 新しい新しいスーパータイプ(); 
SubType.prototype.sayAge = 関数(){ 
    にconsole.log(この.age); 
} 
VARの SUB1 = 新しい新しいサブタイプ(); 
sub1.sayName();         // スーパー 
sub1.sayAge();         // 20 
// 今sub.constructor点スーパータイプ
// オリジナル再コンストラクタであるため、サブタイプであります書き込み酒 
にconsole.log(sub1.constructor);     // スーパータイプの機能出力

// プロトタイプチェーンの問題
// 次のコードは、我々はすべてのインスタンスがこのガールフレンドサブタイプ属性共有することになりますでしょう
// スーパータイプのコンストラクタはなります共有サブタイプのすべてのインスタンス
のvar SUB2 = 新しい新しいサブタイプ(); 
sub1.girlFriends.push( "Xiaochen" ); 
はconsole.log(sub2.girlFriends);     //(3) "xiaoli"、 "xiaowang"、 "xiaochen"]

 

おすすめ

転載: www.cnblogs.com/gehaoyu/p/11804272.html