オーバーロードされたメソッドの実装

あなたのJavaScriptコードのオーバーロードされたメソッドを実装する際のメソッドの任意のオブジェクトに割り当てられ、そこにのみ、そのプロパティの1つのインスタンスを使用できます。でJavaScriptを同様に複数の名前付きプロパティを割り当てることが可能ではありません。たとえば、次のコードは動作しません。

 ソース: /サイト/ルート/ Ajaxの記事/ジャバスクリプト/ overloaded.htmlヴァール分類=新しいObject();分類["メソッド"] =関数()(情報("Method1を"、"こんにちは");)cls.method();分類["メソッド"] =関数()(情報("Method2の"、"こんにちは");)cls.method();
  

この例のコードでは、メソッドのプロパティに2つの代入されます。 cls.methodメソッドが2回と呼ばれ、その関数の実装と呼ばれる最後の代入値は、各呼び出してください。コードと簡単ですが、割り当てることで、することはできませんオーバーロードメソッドを説明するためのものです。メソッドのオーバーロード状況では、パラメータの数が可変のメソッドで呼び出されるようになると便利です。がないので、型の宣言は、オーバーロードされたメソッドのパラメータの数によって異なります。ロジックが使用されている場合は、メソッドの5つのパラメータでは、その呼ばれる5つのパラメータを処理するオーバーロードされたメソッドが呼び出されます。場合は、オーバーロードされたメソッドが存在しない場合、デフォルトの実装では、最初にプロパティに使用される割り当てられていた。 ソリューションオーバーロードされたメソッドの実装は次のとおりです。

 ソース: /サイト/ルート/スクリプト/ jaxson /オーバーロードされたcommon.js:=関数()(ヴァールembeddedFunc(例えば、funcIdentifier、newFunc)(ヴァールoverloadedPrototype関数= __embedded;ヴァールoverloadedFunc = __newFunc;場合(のarguments.length == __paramCount)( overloadedFunc.apply(これは、引数);)他の場合は(()=="関数")embeddedFunc typeof演算(embeddedFunc.apply(これは、引数);))ヴァールorigFunc;場合(!インスタンス[funcIdentifier])(origFunc =関数()();)他(origFunc =インスタンス[funcIdentifier];)インスタンス[funcIdentifier] = Generics.expand(overloadedPrototype、(__embedded:origFunc、__newFunc:__paramCount newFunc:ParamCount(newFunc)));)

実装では、JavaScriptのジェネリックoverloadedPrototype関数を展開するために使用されます。しかし、この拡張に追加ひねり、以前に使用されていません。 __paramCount識別子を見てください。場合は、識別子はクロスを参照し、ときにそれが参照する数値の値が展開さ__paramCount。これは、機能拡張は難しいだろうコーディングされたが、これはJavaScriptのジェネリック使用されて、これは悪いことではないということです。パフォーマンスをより速くなるでしょうがないので、必要なパラメータは、overloadedFunc機能している数を計算することです。オーバーロードされたメソッドは、次のコードを使用するために使用されます:

関数FunctionNoParam()()関数FunctionOneParam(param)は(情報("FunctionTwoParam"、"param ="+ param)は;)関数FunctionTwoParam(Param1を、param2)を(情報("FunctionTwoParam"、"Param1を="+ Param1を+"param2 ="+ param2)を;)ヴァール分類=新しいObject(); cls.value ="オリジナル"; cls.example =関数()(情報("デフォルト"、"こんにちは");)ops.overloaded(分類、"例"、FunctionNoParam); ops.overloaded(分類、"例えば、"FunctionOneParam); ops.overloaded(分類、"例えば、"FunctionTwoParam);("1 param例"); cls.example cls.example("最初のパラメータ"、"2番目のparam");

3つの関数が定義され:FunctionNoParam、FunctionOneParam、およびFunctionTwoParam。これらの関数をパラメータとしてのさまざまな数を持つ関数のオーバーロードを提供。分類変数には、メソッド、またはパラメータを持つ一般的なJavaScriptオブジェクトです。データメンバの値を動的にデフォルトのメソッドに割り当てられた後、デフォルトの割り当てられている場合、このメソッドの例では3つの関数のオーバーロードops.overloaded関数を使用して、オーバーロードされます。 1回のメソッドをオーバーロードされている、これらのパラメータのさまざまな番号を呼び出すことができます。オーバーロードされたメソッドは、例えば、その順番に呼び出すには、正しい方法を見つけるときオーバーロードされたメソッドを実装する、心の中で、次の点を維持:

ジェネリック拡大JavaScriptのオーバーロードメソッド•それに類似していた以前の記事で示します。唯一の追加ツイストハードパラメータの数の符号化された伝統的なプログラミング手法を使用することが、JavaScriptを使用してはしないだろう

それは簡単ですし、お勧めのジェネリック。

•ときにメソッドをオーバーロードする場合にしたい場合は、デフォルトの実装を提供する必要があります。

•あなただけでなく、パラメータの数をサポートするためにどのようにコールしたいを決定するだけでなく、入力が必要です。これは、多くの一般的な使用の場合、すべての後です。その変種は、配列を受け取り、各要素の文字列バージョンの呼び出しによってロードされる可能性のある文字列を受け入れるメソッド。

•オーバーロードメソッドの種類によると、それは不可能ですパラメータの数に応じて行われます。

•あなたがオーバーロードされた型を実装することは、特定の種類のフィルタです。たとえば、あなたは、特定のオブジェクトの値が存在するクエリのオーバーロードされたメソッドは、フィルタを実装することができます。その場合は、オーバーロードされた記事。動的コンテンツを記事では、プロキシを組み合わせることができますを行うには 鶏の構築、Ajaxアプリケーションは、そのサーバー側のデータと対話するユーザーインターフェイスを作成しています。ユーザーインターフェースの構築は無関係と見なされる可能性が複数の側面が含まれます。たとえば、フォーム上の要素の番号が必要です。を適切に、これらの要素を配置し、それらを確認する必要があります。のための検証方法に関係なく要素が配置され進むことができますを置き、検証関係のない、と見なされる可能性が逆。この資料ではその使いやすさが正しいかの要素を配置するの詳細を発掘しようとしていません。その代わりに、この資料のトピックを掘り下げて、その要素を検証、HTMLダイアログボックスの生成などのアルゴリズムに焦点を当てる、および動的なレイアウトを生成。

記事は、ソニアLandeを提出


免責事項:弊社のウェブサイトは、この資料の内容については責任を負いません。 Webarticles無料の情報リソースです。
重要: この記事は、""オーバーロードされたメソッドの実装の自動ソフトウェアによって翻訳された。大変申し訳ございませんが発生した可能性があります任意のスペルミスを感じている。お客様のご理解いただき、ありがとうございます。


Online: 312 users browsing the articles directory