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サーバーのインストール、構成、起動、シャットダウン方法の詳細な説明

1. 公式サイトからダウンロード: https://dev.mysql.com/downloads/...

border-radius 値の設定に関する質問

問題記録今日はプログレスバーに似た小さなコンポーネントを完成させるつもりでした。プロトタイプは次のよ...

よく使うLinuxコマンドのまとめ

私は2年間運用保守に携わり、多くのコマンドを使用しました。特定のLinuxコマンドを習得すると、どれ...

Mysql の varchar 型に関する注意点

varchar の保存ルール4.0 未満のバージョンでは、varchar(20) は 20 バイトを...

ApacheBench でマルチ URL をサポートする方法

標準の ab は単一の URI でのストレス テストのみをサポートしており、実際のニーズを満たしてい...

MySQL5.7.27-winx64 バージョン win10 のダウンロードとインストールのチュートリアル図

MySQL 5.7 のインストール私たちは学校で MySQL データベースを学んでいます。先生は私た...

Zabbix動的実行監視収集スクリプトの実装原理

Zabbix カスタム スクリプトを使用して監視データを収集する場合、通常、次の問題が発生します。サ...

Apache ソースコードのインストールと仮想ホストの設定に関する詳細なチュートリアル

ソースからApacheをインストールする1. Apacheソースコードをアップロードして必要なソフト...

Vueにログイン認証傍受機能を設置するアイデアを詳しく解説

目次1. 解決策2. サーバーから返されたトークンをブラウザに保存する3. リクエストにアクセス権限...

Linuxで環境変数を削除する詳細な手順

Linuxで環境変数を削除するには?unsetコマンドを使用してすぐに削除します1. Linuxクラ...

mysql-8.0.19-winx64 をインストールしてログインするための初心者向けチュートリアル (初心者必読)

目次1. インストールパッケージ(64ビット)をダウンロードする2. MySQLデータベースをインス...

7つの基本的なXHTMLコーディングルールの概要

1. すべてのタグには対応する終了タグが必要です以前の HTML では、<p> や &l...

MySQLクエリ構文の概要

序文:この記事では主に、MySQL の where、group by、order by、limit、...

HTML+CSS マージテーブル境界線サンプルコード

table タグと td タグに境界線を追加すると、デフォルトでは次のように二重境界線が使用されます...

Vueの自己ネストツリーコンポーネントの使い方の詳細な説明

この記事では、Vueの自己ネストツリーコンポーネントの使い方を参考までに紹介します。具体的な内容は次...