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での接続例外中のエラーを解決する

推薦する

DockerにNginxをインストールする方法

DockerにNginxをインストールするNginx は、IMAP/POP3/SMTP サービスも提...

CocosCreator で物理エンジン ジョイントを使用する方法

目次マウスジョイント マウスジョイント距離ジョイント距離ジョイントモータージョイント直動ジョイント変...

Vueは、商品の数を制御するためのコンポーネントのパッケージ化と使用を実装します。

Vueのコントロール商品数量コンポーネントのカプセル化と使用は参考までに。具体的な内容は以下のとお...

Vueはユーザーログインとトークン検証を実装します

フロントエンドとバックエンドを完全に分離する場合、Vue プロジェクトでトークン検証を実装する一般的...

MySQLにおけるACIDトランザクションの実装原理の詳細な説明

導入いつものように、シーンから始めましょう〜インタビュアー:「トランザクションの4つの特性をご存知で...

Dockerネットワーク作成に--subnetを追加した後の問題を解決する

Docker ネットワークの作成に –subnet を追加した後、docker network ls...

Linux で独自の Nexus プライベート サーバーを構築する方法

この記事では、Linuxサーバー上でDockerを使用してNexusプライベートサーバーを構築する方...

JS 日付コントロール My97DatePicker の基本的な使い方

My97DatePicker は非常に柔軟で使いやすい日付コントロールです。使い方はとても簡単です。...

MySQL データベースの一般的な基本操作の分析 [データベースの作成、表示、変更、削除]

この記事では、例を使用して、MySQL データベースの一般的な基本操作について説明します。ご参考まで...

yumコマンドの使い方

1. yumの紹介Yum (フルネームは Yellow dogUpdater、Modified) は...

jsプロキシの原理の詳細な説明

目次プロキシモードとは何ですか?実例を紹介例を使ってプロキシモデルの定義を理解するプロキシとはget...

JS オブジェクトのコピー (ディープ コピーとシャロー コピー)

目次1. 浅いコピー1. Object.assign(ターゲット、ソース、ソース...) 2. スプ...

Ajax の JavaScript ソリューションにおける parsererror エラー ケースの詳細な説明

ajax の parsererror エラー (バックグラウンドからフロントエンドに送信される js...

MySQL 5.7.17 のインストールと使用方法のグラフィックチュートリアル

MySQL は、スウェーデンの会社 MySQL AB によって開発され、現在は Oracle が所有...

Linux でのルーティングと仮想マシン ネットワークの設定に関する詳細なグラフィック説明

ルーティングとは何ですか?ルーティングとは、相互接続されたネットワークを介して送信元ステーションから...