JavaScript インスタンス オブジェクトでプロトタイプ メソッドをオーバーライドする方法の詳細

JavaScript インスタンス オブジェクトでプロトタイプ メソッドをオーバーライドする方法の詳細

JavaScriptでは、通常、次のコードのようにクラスを簡単に定義できます。

var サンプル = 関数() {
    // コンストラクタコードはここ 
}

sample.prototype.func1 = 関数() {
    // func1 コードはここ
}

sample.prototype.func2 = 関数() {
    // ここで func2 コード
}

/* ここにさらにサンプルのプロトタイプ関数があります... */

次に、次のコードを使用してプロトタイプ メソッドをインスタンス化し、アクセスします。

var sampleInstance = 新しいサンプル();
サンプルインスタンス.func1();
サンプルインスタンス.func2();
// サンプルオブジェクトのプロトタイプ関数をさらに呼び出す


しかし、元のsampleオブジェクトを破壊せずにプロトタイプ メソッドの 1 つを書き換えたい場合は、どうすればよいでしょうか。最も簡単な方法は、 sampleを継承する別のクラスを構築し、継承したクラスのプロトタイプ メソッドで基本クラス メソッドを次のように書き換えることです。

var サブサンプル = 関数() {
    // コンストラクタコードはここ
}

// サンプルから継承
subSample.prototype = 新しいサンプル();
subSample.prototype.fun1 = 関数() {
    // サンプルの func1 を上書きする
}

ただし、継承クラスを構築せず、プロトタイプ メソッドを書き換える場合は、次のコードを直接使用できます。

var sampleInstance = 新しいサンプル();
サンプルインスタンス.func1 = 関数() {
    sample.prototype.fun1.call(this); // サンプルの func1 を呼び出す
    // sampleInstance.func1 のコードはここ
}


sampleインスタンス オブジェクトのfunc1メソッドを再定義し、そのプロトタイプ メソッドfunc1にアクセスして、追加のコードを追加しました。このようにして、派生クラスを作成したり、 sampleのプロトタイプ メソッドを破棄したりすることなく、 sampleのプロトタイプ メソッドを拡張します。

JavaScriptインスタンス オブジェクトでのプロトタイプ メソッドのオーバーライドの詳細に関するこの記事はこれで終わりです。JavaScript インスタンス オブジェクトでのプロトタイプJavaScriptのオーバーライドの詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • JavaScriptは組み込みオブジェクトのプロトタイプメソッド実装を追加します
  • JavaScriptのプロトタイプオブジェクトを徹底的に理解しましょう
  • js のプロトタイプ、プロトタイプ オブジェクト、プロトタイプ チェーンの包括的な分析
  • js でプロトタイプオブジェクトを使用する際の注意点

<<:  XHTML 入門チュートリアル: フォーム タグ

>>:  Dockerでの接続例外中のエラーを解決する

推薦する

MySQL ツリー構造テーブルの設計と最適化に関する簡単な説明

序文多くの管理・オフィスシステムでは、ツリー構造がいたるところで見られます。たとえば、「部門」や「機...

Apache Webサーバーのインストールと設定方法

信頼性が高く、人気があり、簡単に構成できる Web サーバーである Apache で独自の Web ...

CentOS 8/RHEL 8 に Cockpit をインストールして使用する方法

Cockpit は、CentOS および RHEL システムで使用できる Web ベースのサーバー管...

Chrome、Firefox、IEで入力カーソルの位置がずれる問題の解決方法

ブラウザで入力カーソルがずれる問題の詳しい説明<br />仕事で問題に遭遇し、解決策を探...

Vue+video.jsはビデオプレイリストを実装します

この記事では、ビデオプレイリストを実装するためのvue + video.jsの具体的なコードを参考ま...

MySQL の不正な文字列値の解決方法

MySQL を使用して中国語の文字を挿入すると、多くの友人から次のエラーが報告されます。 これは、文...

MySQLを安全にシャットダウンする方法

MySQL サーバーをシャットダウンする場合、シャットダウン方法に応じてさまざまな問題が発生する可能...

MySQL IDは1から増加し始め、不連続IDの問題を素早く解決します

mysql idは1から始まり、不連続なidの問題を解決するために自動的に増加します。強迫性障害の私...

MySQL で group by を使用すると常にエラー 1055 が発生します (推奨)

MySQL で group by を使用すると常にエラー 1055 が発生するため、原因を確認する...

HTML 学習ノート - HTML 構文の詳細な説明 (必読)

1. HTML マークアップ言語とは何ですか? HTML は、Web ページの情報を表すマークアッ...

MySQLテーブルを削除する方法

MySQL でテーブルを削除するのは非常に簡単ですが、削除コマンドを実行するとすべてのデータが消えて...

カルーセル効果を作成するためのjs

カルーセルはフロントエンド開発において比較的重要なポイントだと思います。ネイティブjsの知識ポイント...

CentOS 7 ブートカーネルの切り替えとブートモードの切り替えの説明

Centos7 スイッチブートカーネル注: 必要に応じて、最初にyum update -yを実行して...

MYSQL ログとバックアップおよび復元の問題の詳細な説明

この記事では、参考までにMYSQLログとバックアップとリストアについて紹介します。具体的な内容は以下...

Node はあいまい検索用の検索ボックスを実装します

この記事の例では、検索ボックスでファジークエリを実装するためのNodeの具体的なコードを参考までに共...