ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript メソッドのオーバーロードeffect_javascript スキル

JavaScript メソッドのオーバーロードeffect_javascript スキル

WBOY
WBOYオリジナル
2016-05-16 18:48:321083ブラウズ

JavaScript メソッド内には、引数と呼ばれる読み取り専用の変数配列があり、実際に渡されるすべてのパラメータ変数がその中に配置され、それによって渡されたパラメータを型チェックすることができます。過負荷。
変数の型を決定するには 2 つの方法があります。
1、typeof ステートメントを使用します:

コードをコピー コードは次のとおりです:
function check( ){
if(引数の種類[0] == '文字列')
alert('渡されたパラメータは文字列です');
else if(引数の種類[0] = = 'number ')
alert('渡したパラメータは数値です');
}

2、すべての JavaScript 変数が持つ属性コンストラクターを使用します。この属性はポイントします。この変数のコンストラクターを構築します:

コードをコピーします コードは次のとおりです:
function check(){
if(arguments[0].constructor == String)
alert('渡されたパラメータは文字列です');
else if(arguments[0].constructor = = Number)
alert('渡したパラメータは数値です');
}

比較表:
コンストラクターの種類
------ ------ ---------------
string 文字列
number 数値
object オブジェクト
function 関数
boolean Boolean
object Array
object User
この比較表から、typeof では特定の型を正確に決定できないことがわかります。そのため、コンストラクターを使用して
を決定します。
最初にパラメータの型と数を決定するメソッドを定義します

コードをコピーします コードは次のとおりです:
function checkArgs(types,args){
// パラメータの数を確認します
if(types.length != args.length){
return false;
// パラメータの型を確認します
for(var i=0; iif(args[i].constructor != Types[i]){
return false;
}
}
return
}


上記のメソッドを適用するメソッドを定義します


function show(){
// パラメータが文字列である呼び出しを処理します
if(checkArgs([ String],arguments)){
alert(arguments[0]);
}
// パラメータが文字列と数値である呼び出しを処理します
else if( checkArgs([String,Number ],arguments)){
var s = '';
for(var i=0; is =arguments[0] ;
}
alert(s);
// パラメーターが要件を満たしていない場合、プロンプトを表示します
}else{
alert('サポートされていないパラメーター'); }
}


定義する JavaScript メソッドに厳密なパラメーター要件がある場合、この方法でコードを記述できます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。