ホームページ ウェブフロントエンド jsチュートリアル javascript_javascript のヒントの引数パラメータを使用してメソッドのオーバーロードを偽装する

javascript_javascript のヒントの引数パラメータを使用してメソッドのオーバーロードを偽装する

May 16, 2016 pm 04:34 PM
メソッドのオーバーロード

多くの高級オブジェクト指向言語には、メソッドのオーバーロードがあります。また、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("シャオミン", "シャオファ");
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Go 言語がメソッドのオーバーロードの設計概念をサポートしていないのはなぜですか? Go 言語がメソッドのオーバーロードの設計概念をサポートしていないのはなぜですか? Apr 04, 2024 am 09:00 AM

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

Go言語でメソッドのオーバーロードが不可能な理由と解決策 Go言語でメソッドのオーバーロードが不可能な理由と解決策 Apr 03, 2024 pm 12:33 PM

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

Go 言語におけるメソッドのオーバーロードの問題についての詳細な議論 Go 言語におけるメソッドのオーバーロードの問題についての詳細な議論 Apr 03, 2024 pm 01:36 PM

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

Golang関数のメソッドオーバーロード解析 Golang関数のメソッドオーバーロード解析 May 16, 2023 am 08:36 AM

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

Go言語でメソッドのオーバーロードを実装する方法 Go言語でメソッドのオーバーロードを実装する方法 Apr 03, 2024 pm 12:15 PM

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

Java 関数のオーバーロード メカニズムで最も一致するメソッドを決定するにはどうすればよいですか? Java 関数のオーバーロード メカニズムで最も一致するメソッドを決定するにはどうすればよいですか? Apr 26, 2024 am 09:06 AM

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

Go でメソッドのオーバーロードをエレガントに処理するための代替手段 Go でメソッドのオーバーロードをエレガントに処理するための代替手段 Apr 03, 2024 am 10:15 AM

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

Golang の同じ名前のメソッドの原理を調べる Golang の同じ名前のメソッドの原理を調べる Feb 23, 2024 pm 10:51 PM

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

See all articles