javascript_javascript のヒントの引数パラメータを使用してメソッドのオーバーロードを偽装する
多くの高級オブジェクト指向言語には、メソッドのオーバーロードがあります。また、JavaScript にはメソッドのオーバーロードという概念がありません。ただし、arguments パラメーターを使用して、それを関数
のオーバーロードとして偽装することができます。シミュレーションする前にコードを見てみましょう:
//表面上で仮パラメータを宣言しない関数
関数 fun() {
alert("サンプルコード");
}
fun("Xiao Ming", 100, true);//実際のパラメータを 3 つ書きました
結果から、関数宣言時に仮パラメータを定義しなくても、メソッド呼び出し時に実パラメータを記述できることがわかります。 (実際には、仮パラメータはプログラマが関数を呼び出すときに確認できるように書かれています)
コード内の実際のパラメータを取得できますか?答えは「はい」です。コードを参照してください:
//表面上で仮パラメータを宣言しない関数
関数 fun() {
alert(arguments[0]);//最初の実パラメータの値を取得します。
alert(arguments[1]);//2 番目の実パラメータの値を取得します。
alert(arguments[2]);//3 番目の実パラメータの値を取得します。
alert(arguments.length);//実際のパラメータ数を取得します。
alert("サンプルコード");
}
fun("Xiao Ming", 100, true);//実際のパラメータを 3 つ書きました
コードを通して、引数 (内部プロパティ) 自体が配列であり、その機能がメソッドの実際のパラメーターを格納することであることがわかります。
上記の知識ポイントにより、シミュレーション方法をオーバーロードするためのアイデアが得られます。実際のパラメータの数に基づいて判断して、さまざまなロジックコードを実行できます。簡単なコードは次のとおりです:
関数 fun() {
if (arguments.length == 0) {
alert("実際のパラメータなしでコードを実行");
}
else if(arguments.length==1)
{
alert("実際のパラメータで渡されたコードを実行します");
}
else if(arguments.length==2)
{
alert("2 つの実際のパラメータで渡されたコードを実行します");
}
}
楽しい();
fun("シャオミン");
fun("シャオミン", "シャオファ");

ホット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)

ホットトピック











Go 言語は、その設計思想が単純さ、同時実行性、型安全性を重視しているため、メソッドのオーバーロードをサポートしていません。メソッドのオーバーロードにより、名前の競合、複雑な型システム、コードの混乱が生じる可能性があります。これを補うために、Go 言語では、メソッドのオーバーロードの機能と同様に、名前は同じでパラメーターの型が異なる関数を同じパッケージ内に作成できる関数が提供されています。

Go 言語は、静的型チェックの複雑さ、明確さの喪失、インターフェイスとの非互換性のため、メソッドのオーバーロードをサポートしていません。代替手段には、関数のオーバーロード、インターフェイス メソッド、およびポリモーフィズムが含まれます。具体的には、関数のオーバーロードにより、異なるパラメーター リストを持つ同じ名前の関数の作成が可能になり、インターフェイス メソッドはインターフェイスを使用してメソッドを定義し、異なる型で実装し、ポリモーフィズムは型変換とアサーションを使用して、異なる型のパラメーターを持つオブジェクト メソッドを実装できます。 。

Go 言語はダイレクト メソッドのオーバーロードをサポートしていませんが、インターフェイスを使用して同様の関数をシミュレートします。インターフェイスはメソッドのセットを定義し、型はインターフェイスのメソッドを実装することによってオーバーロードをシミュレートします。異なるインターフェイスを使用して、異なるパラメーター リストを持つ同じメソッドを定義し、これらのインターフェイスを実装する型を作成することで、メソッドのオーバーロードの効果を実現します。

Golang では、関数名が一意であり、同じスコープ内で同じ名前の 2 つの関数を定義することはできないため、関数のオーバーロード (オーバーロード) はサポートされていません。ただし、Golang は、メソッド オーバーロードの代替手段であるメソッド オーバーロードを提供します。メソッドのオーバーロードは、クラス内に同じ名前のメソッドを定義しますが、それらのパラメータリストは異なります。この記事では、Golang のメソッドのオーバーロードについて詳しく学びます。何

メソッドのオーバーロードは Go 言語ではサポートされていませんが、インターフェイス シミュレーションは使用できます。メソッドのオーバーロード手順: 1. 考えられるすべてのシグネチャを含むインターフェイスを作成します; 2. インターフェイスを実装するために、異なるシグネチャを持つ複数のメソッドを実装します。

Java 関数のオーバーロードの一致ルールは次のとおりです。 完全一致: パラメータのタイプと番号が正確に一致します。 可変パラメータ: 可変パラメータ メソッドは、任意の数またはタイプのパラメータに一致します。 パッケージ化タイプと元のタイプの変換: 基本タイプとパッケージ化タイプは相互に自動的に変換できます。ロードされたボックス化/アンボックス化: 基本型の値とラップされた型のオブジェクトは、派生クラスの型に自動的に変換できます: 派生クラスのオブジェクトは、基本クラスの型パラメーターと一致できます

Go 言語にはメソッドのオーバーロードはありませんが、代替手段を使用して同様の動作を実現できます。 関数変数: さまざまなパラメータのセットを持つ関数を定義し、それらを変数に格納し、必要に応じて適切な関数を呼び出します。インターフェイス タイプ: 異なるパラメーター セットを持つ複数のメソッドを含むインターフェイス タイプを定義し、特定の動作を提供するインターフェイスを実装します。ネストされたタイプ: メソッドをネストされたタイプにグループ化します。ネストされた各タイプは、異なる数またはタイプの引数を持つ関数を表します。

Golang は、プログラマーの生産性を向上させるために Google によって開発されたオープンソースのコンパイル済みプログラミング言語です。メソッドは、特定の型に対して関数を定義できるようにする Golang の重要な概念であり、これらの関数はメソッドと呼ばれます。 Golang では、メソッドは構造体 (struct)、インターフェース (インターフェース)、および特定の型に対して定義できます。構造体またはインターフェイスでメソッドを定義する場合、同じ名前のメソッドを使用できます。つまり、同じ型では同じ名前のメソッドを定義できますが、
