JavaScript学習メモ(10) jsオブジェクト継承_基礎知識
1. プロトタイプチェーン
//単独で使用されることはほとんどありません
コードを表示
//属性プロパティとメソッド getSuperValue
function SuperClass() {
this.property = true;
}
SuperClass を定義します。 prototype.getSuperValue = function() {
return this.property;
}
// 属性 subproperty と後で追加されるメソッド getSubValue を持つ SubClass クラスを定義します。
function SubClass( ) {
this.subproperty = false;
}
//SubClass クラスは SuperClass クラスを継承します
SubClass.prototype = new SuperClass();メソッド getSubValue
SubClass.prototype.getSubValue = function() {
return this.subproperty;
}
//SubClass クラスのインスタンスを作成します
var instance = new SubClass();
alert(instance.getSuperValue());
2. プロトタイプとインスタンスの間の関係を決定する
2 番目の方法は、isPrototypeOf() メソッドを使用して、プロトタイプ チェーンに表示されるプロトタイプをテストすることです
3.チェーン継承
メソッドが定義される順序:
}
SuperClass.prototype.getSuperValue = function() {
return this.property; >}
function SubClass() {
this.subproperty = false ;
}
//SubClass は SuperClass を継承します
SubClass.prototype = new SuperClass() / /これを最初に記述し、新しく追加したメソッドとスーパークラスをオーバーライドするメソッドは後で記述する必要があります。そうしないと、オーバーライドされたスーパークラス メソッドは
//新しいメソッド
SubClass を呼び出すことができなくなります。 prototype.getSubValue = function() {
return this.subproperty;
}
//スーパークラスメソッドをオーバーライドします
SubClass.prototype.getSuperValue = function() {
return false; 🎜>}
varinstance = new SubClass();
alert(instance.getSuperValue()); // false、ここでの SubClass のインスタンスは SubClass の getSuperValue() メソッドを呼び出しますが、getSuperValue() はブロックされます。
//SuperClass メソッドを使用すると、SuperClass の getSuperValue() メソッドが呼び出されます
プロトタイプ チェーン継承の欠点: 1) スーパー クラスでプロパティを共有する、2) 共有できないサブクラスの作成時にスーパークラスのコンストラクターにパラメーターを渡します。すべてのプロトタイプ チェーンは単独で使用されることはほとんどありません
4. コンストラクターの借用
//単独で使用されることはほとんどありません
利点: パラメーターをスーパー クラスに渡すことができます。欠点: 関数は再利用できません。すべてのクラスはコンストラクター パターンを使用する必要があります。
コードをコピー
SuperClass.call(this,"RuiLiang") ; / /スーパークラスを継承し、パラメータをスーパークラスに渡します
this.age = 29; //インスタンス属性
var instance = new SubClass(); ; //RuiLiang
alert(instance.age); //29
6. 最も一般的に使用される継承パターン
コードをコピー
コードは次のとおりです:
コードの表示
//スーパークラスの作成
function SuperClass(name) {
this.name = name;
this.colors = ["red","blue"," green"];
}
SuperClass.prototype.sayName = function() {
alert(this.name);
}
////サブクラスの作成
function SubClass(name,age) {
SuperClass.call(this,name); //継承された属性
this.age = age; //独自の属性
SubClass. = new SuperClass(); //継承されたメソッド
SubClass.prototype.sayAge = function() { //SubClass は新しいメソッド
alert(this.age); を追加します。 //
varinstance1 = new SubClass("RuiLiang",30);
instance1.colors.push("black"); //"red,blue , green,black"
instance1.sayName(); //"RuiLiang"
instance1.sayAge(); //30
var instance2 = new SubClass("XuZuNan",26);
alert(instance2.colors); //"赤、青、緑"
instance2.sayName() //"RuiLiang"
7. その他の継承パターン
プロトタイプ継承、寄生継承、寄生複合継承

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











関数の継承では、「基底クラス ポインター」と「派生クラス ポインター」を使用して継承メカニズムを理解します。基底クラス ポインターが派生クラス オブジェクトを指す場合、上方変換が実行され、基底クラスのメンバーのみにアクセスされます。派生クラス ポインターが基本クラス オブジェクトを指す場合、下向きキャストが実行される (安全ではない) ため、注意して使用する必要があります。

継承とポリモーフィズムはクラスの結合に影響します。派生クラスは基本クラスに依存するため、継承により結合が増加します。ポリモーフィズムにより、オブジェクトは仮想関数と基本クラス ポインターを通じて一貫した方法でメッセージに応答できるため、結合が軽減されます。ベスト プラクティスには、継承を控えめに使用すること、パブリック インターフェイスを定義すること、基本クラスへのデータ メンバーの追加を回避すること、依存関係の注入を通じてクラスを分離することが含まれます。ポリモーフィズムと依存性注入を使用して銀行口座アプリケーションの結合を軽減する方法を示す実践的な例。

PHP エラーの解決: 親クラスの継承時に発生する問題 PHP では、継承はオブジェクト指向プログラミングの重要な機能です。継承により、元のコードを変更することなく、既存のコードを再利用し、拡張および改善できます。継承は開発で広く使用されていますが、親クラスから継承するときにエラーの問題が発生することがあります。この記事では、親クラスから継承するときに発生する一般的な問題の解決に焦点を当て、対応するコード例を示します。質問 1: 親クラスが見つかりません。親クラスの継承処理中に、システムが親クラスを見つからない場合、

継承エラーのデバッグのヒント: 正しい継承関係を確認します。デバッガーを使用してコードをステップ実行し、変数値を調べます。仮想修飾子を正しく使用してください。隠れた相続によって引き起こされる相続ダイアモンド問題を調べてください。抽象クラスに実装されていない純粋仮想関数がないか確認します。

PHP でデータ型を処理するためにポリモーフィズムと継承を使用する方法 はじめに: PHP では、ポリモーフィズムと継承は 2 つの重要なオブジェクト指向プログラミング (OOP) 概念です。ポリモーフィズムと継承を使用することで、さまざまなデータ型をより柔軟に処理できます。この記事では、ポリモーフィズムと継承を使用して PHP でデータ型を処理する方法を紹介し、コード例を通じてその実際の応用例を示します。 1. 継承の基本概念 継承はオブジェクト指向プログラミングにおける重要な概念であり、親クラスのプロパティとメソッドを継承できるクラスを作成できます。

継承は、あるクラスのプロパティと動作に別のクラスからアクセスできるようにする概念です。メソッドやメンバ変数を継承するクラスをスーパークラスまたは親クラスと呼び、メソッドやメンバ変数を継承するクラスをサブクラスまたはサブクラスと呼びます。 Javaでは、クラスを継承するために「extends」キーワードを使用します。この記事では、相続を利用して定期預金や定期預金の利息を計算する Java プログラムについて説明します。まず、ローカル マシンの IDE でこれら 4 つの Java ファイル Acnt.java を作成します。このファイルには、金利や金額などの口座詳細を保存するために使用される抽象クラス「Acnt」が含まれます。また、計算用のパラメータ「amnt」を持つ抽象メソッド「calcIntrst」も含まれます。

PHP のカプセル化テクノロジとアプリケーションのカプセル化は、オブジェクト指向プログラミングにおける重要な概念であり、外部プログラムに統一されたアクセス インターフェイスを提供するために、データとデータに対する操作を一緒にカプセル化することを指します。 PHP では、アクセス制御修飾子とクラス定義を通じてカプセル化を実現できます。この記事では、PHP のカプセル化テクノロジとそのアプリケーション シナリオを紹介し、いくつかの具体的なコード例を示します。 1. カプセル化されたアクセス制御修飾子 PHP では、カプセル化は主にアクセス制御修飾子によって実現されます。 PHP には 3 つのアクセス制御修飾子が用意されています。

継承: 継承は、クラスが他のクラスからプロパティと動作を継承できるようにするオブジェクト指向プログラミング (OOP) の基本概念です。これは、既存のクラスに基づいて新しいクラスを作成し、コードの再利用を促進し、クラス間の階層関係を確立するためのメカニズムです。継承は、「親と子」または「スーパークラスと子」の関係の概念に基づいています。継承するクラスをスーパークラスまたは基底クラスと呼び、スーパークラスを継承するクラスをサブクラスまたは派生クラスと呼びます。サブクラスは、スーパークラスのすべてのプロパティ (変数) とメソッド (関数) を継承し、独自の一意のプロパティとメソッドを追加したり、継承されたプロパティとメソッドをオーバーライドしたりすることもできます。クラスが他のクラスからプロパティと動作を継承できるようにします。それは促進します
