JavaScriptで関数のオーバーロードとパラメータのデフォルト値を実装する

高洛峰
リリース: 2016-11-26 14:08:54
オリジナル
1639 人が閲覧しました

パラメータのデフォルト値とは、関数呼び出し時に実際のパラメータが省略された場合、関数がパラメータにデフォルト値を自動的に割り当て、関数呼び出しの利便性と柔軟性が大幅に向上することを意味します。

たとえば、PHP の文字列インターセプト関数 substr(string,start,length) を考えます。長さが指定されていない場合、関数はデフォルトで文字列の開始位置から文字列の末尾までをインターセプトします。 、開始位置から始まる長さの文字列をインターセプトするため、substr('http://www.hualai.net.cn',11,6) を呼び出すと、最後の One パラメータを省略すると hualai が返されます。 , substr('http://www.hualai.net.cn',11)、hualai.net.cn を返します。

たとえば、jQuery フレームワークでは、$(selector).html() メソッドは要素内の HTML コードを取得し、$(selector).html(content) は要素内の HTML を設定します。 C 言語では、次の形式で関数パラメータのデフォルト値を設定できることがわかっています:


void foo(int a, int b = 1, bool c = false);

Java では、関数のオーバーロードを通じて関数パラメータのデフォルト値を設定できます。

public void foo(int a){

foo(a, 1);
} public void foo(int a, int b){

foo(a, b, false);

}

public void foo(int a, int b, bool c){

//関数の内容
}








そして、JavaScriptでは、 jQueryのような関数パラメータのデフォルト値を設定するにはどうすればよいですか? JavaScript には、C 言語で関数を定義するときにパラメーターの直後に値を割り当てる方法はなく、Java のような関数のオーバーロードもありません。ただし、JavaScript の引数読み取り専用変数配列を通じてこれを実現できます。


function foo(){

var a = argument[0] ? argument[0] : 1;

var b = argument[1] : false;





上記は、パラメーターが存在するかどうかを判断することによって行われ、存在しない場合は、パラメーターの型を判断してデフォルト値を変数に追加できます:

function foo (){

if(typeof argument[0] == 'string')
alert('パラメータの型は文字列です');

else if(typeof argument[0] == 'number')

alert('パラメータの型は数値です');
}



または

function foo(){
if(arguments[0].constructor == String)
alert('パラメータの型は文字列です') ;

else if(arguments[0].constructor == Number )

alter('パラメータの型は数値です');

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!