JavaScript オブジェクト指向 JavaScript 継承_js オブジェクト指向

WBOY
リリース: 2016-05-16 18:28:09
オリジナル
1271 人が閲覧しました

前のセクションでは、JavaScript オブジェクト指向名前空間JavaScript オブジェクト指向 JavaScript クラスJavaScript オブジェクト指向のプライベート メンバーとパブリック メンバー について説明しました。 🎜>JavaScript オブジェクト指向のオーバーロード については、まず上記を読んでから、以下を読み続けることができます。
JavaScript で継承を実装する方法は数多くあります。一般的な方法を 2 つ紹介します。

1. 継承を呼び出し、最初にコードを確認します。
まず「person」クラスを定義します

コードをコピー コードは次のとおりです。
//Human
person=function(){
this.name="Grass Mud Horse";
this.eat= function(){
alert("食べたい");
}
this.sleep=function(){
alert("寝たい");
}


別の学生クラスを定義し、それを Person から継承させます


コードをコピーします コードは次のとおりです:
//Student クラス
Student=function(){
person.call(this);// Person クラスを継承
this.do宿題=function (){
alert("先生が来ました、宿題をコピーさせてください");
}
}


重要なのは、 person.call という文に注目することです。 (this)、ここで this は現在のオブジェクト、つまり Student を表します。これは理解しやすいものであり、 Person.call(this) は次のことを意味します。 Student は person のすべての機能も持ちます。
高級言語と同様に、親クラスと同じ名前のメンバがサブクラスに出現すると上書きされてしまいます、いわゆる「書き換え」です。
同様に、女の子クラスを定義します。


コードをコピーします コードは次のとおりです:
//Girl クラス
Girl=function(){
パーソン.call(this);//継承 パーソン クラス
this.sex="女性";


JavaScript は多重継承を実装できます。以下の Master クラスを見てください。この Master は当然学生ですが、同時にかわいい女の子でもあるため、次のコードがあります。 >

コードをコピー
コードは次のとおりです: //マスタークラスMaster=function(){ Student.call(this );//Student クラスを継承
Girl.call(this);//Girl クラスを継承
this.degree="修士号";//Education

}


テストできます:



コードをコピーします
コードは次のとおりです。 var master=new Master (); master.name="Sister Feng" master.do宿題(); alert("My name is: " master.name);
alert("My sex is:" master.sex);


がある場合は、順序に注意してください。 2 つのクラスに同じ名前のメンバーがある場合、後者は前のクラスを上書きします。つまり、現在のクラスは後者のクラスのメンバーのみを継承します。
呼び出しメソッドの継承については以上です。呼び出しメソッドがわからない場合は、Google に聞いてください。あまりネット上に転載しないでください。別の継承方法について話しましょう。
2 番目、プロトタイプのプロトタイプ継承:
モニター クラスを定義しましょう:



コードをコピーします


コードは次のとおりです。 :
//分隊リーダークラスSquadLeader=function (){ //こんにちはthis.hi=function(){ alert("こんにちは、クラスメートの皆さん、私は今分隊長です");
}
}


上記はマスター クラスを定義しています。これで、このマスターは分隊長に昇格したため、このマスターは分隊長を継承します。今回はプロトタイプを使用して実装します。次のコードを参照してください:




コードをコピーします


コードは次のとおりです:

Master.prototype=new SquadLeader();//プロトタイプ属性はオブジェクトを指します
//または
//Master.prototype=SquadLeader.prototype
;マスターは SquadLeader クラスを継承します。これには 2 つの形式があります。実際、原理は同じです。それは、分隊長の「魂」をマスターにコピーすることを意味します。これで、マスターは分隊長ができるすべてのことができるようになります。
テストします:
var master=new Master();
master.hi()//出力 "こんにちは、クラスメートの皆さん、私はモニターになりました"


個人的には、最初の解決策 (呼び出し継承) を使用して継承を実装することを好みます。すべてのコードが "{}" で囲まれており、2 番目の解決策よりも記述スタイルが C# に近いことがわかります。私は通常、prototype プロパティを使用して既存のクラスを拡張します。

JavaScript は非常に柔軟な言語です。継承を実装するためのより良い方法があるかもしれません。ここでは、素晴らしい翡翠につながることを願って、レンガを投げています。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!