ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScriptメソッドのパラメータにデフォルト値を設定する例_基礎知識

JavaScriptメソッドのパラメータにデフォルト値を設定する例_基礎知識

WBOY
リリース: 2016-05-16 15:31:38
オリジナル
1186 人が閲覧しました

そのような状況に遭遇して、パラメーターなしで関数を作成したことがありますか?

function showUserInfo(){
alert("你好!我是小明。");
}

function showUserInfo(){ 
  alert("你好!我是小明。"); 
} 

ログイン後にコピー

電話:

showUserInfo();

showUserInfo(); 

ログイン後にコピー

後で、この関数が他の場所でも必要であることがわかりましたが、いくつかの変数値が関数内にハードコーディングされていました。どうすればよいでしょうか?パラメータを追加します。

function showUserInfo(name){
name=name||"小明";
alert("你好!我是"+name+"。");
}

function showUserInfo(name){ 
  name=name||"小明"; 
  alert("你好!我是"+name+"。"); 
} 

ログイン後にコピー

説明: name=name||"Xiao Ming" このコードは、name が null の場合、デフォルト値 "Xiao Ming" と等しいことを意味します。次のように書くこともできます:

function showUserInfo(name){
// name=name||"小明";
if(!name){
name="小明";
}
alert("你好!我是"+name+"。");
}

function showUserInfo(name){ 
// name=name||"小明"; 
  if(!name){ 
    name="小明"; 
  } 
  alert("你好!我是"+name+"。"); 
} 

ログイン後にコピー


電話:

showUserInfo('小李');

showUserInfo('小李'); 

ログイン後にコピー


その後、ニーズが変化し、年齢を追加する必要がありました。さて、変更しましょう:

function showUserInfo(name,age){
name=name||"小明";
age=age||22;
alert("你好!我是"+name+",今年"+age+"岁。");
}

function showUserInfo(name,age){ 
  name=name||"小明"; 
  age=age||22; 
  alert("你好!我是"+name+",今年"+age+"岁。"); 
} 

ログイン後にコピー

電話:

showUserInfo('小李');//结果:你好!我是小李,今年22岁。
showUserInfo('小李',19);//结果:你好!我是小李,今年19岁。
showUserInfo(null,19);//结果:你好!我是小明,今年19岁。

showUserInfo('小李');//结果:你好!我是小李,今年22岁。 
showUserInfo('小李',19);//结果:你好!我是小李,今年19岁。 
showUserInfo(null,19);//结果:你好!我是小明,今年19岁。 

ログイン後にコピー


では、誕生日、電話番号、性別、QQ などのパラメータを追加する必要がある場合はどうすればよいでしょうか?デフォルト値を1つずつ設定しますか?実際、これをやっている人をたくさん見かけます。より簡単な方法を見てみましょう。それは、Jquery拡張機能を使用することです。まずコードを見てみましょう:

function showUserInfo(setting){
var defaultSetting={
name:"小明",
age:"22",
sex:"男",
phone:"13888888888",
QQ:"12345678",
birthday:"1980.12.29"
};
$.extend(defaultSetting,settings);
var message='姓名:'+defaultSetting.name
+',性别:'+defaultSetting.sex
+',年龄:'+defaultSetting.age
+',电话:'+defaultSetting.phone
+',QQ:'+defaultSetting.QQ
+',生日:'+defaultSetting.birthday
+'。';
alert(message);
}


function showUserInfo(setting){ 
  var defaultSetting={ 
    name:"小明", 
    age:"22", 
    sex:"男", 
    phone:"13888888888", 
    QQ:"12345678", 
    birthday:"1980.12.29" 
  }; 
   
  $.extend(defaultSetting,settings); 
   
  var message='姓名:'+defaultSetting.name 
      +',性别:'+defaultSetting.sex 
      +',年龄:'+defaultSetting.age 
      +',电话:'+defaultSetting.phone 
      +',QQ:'+defaultSetting.QQ 
      +',生日:'+defaultSetting.birthday 
      +'。'; 
  alert(message); 
} 

ログイン後にコピー

説明: $.extend(defaultSetting,settings) の機能は、受信した設定構成を defaultSetting とマージし、defaultSetting 構成を設定内の構成で上書きすることです。

電話:

showUserInfo({
name:"小李"
});
//结果:姓名:小李,性别:男,年龄:22,电话:13888888888,QQ:12345678,生日:1980.12.29。
showUserInfo({
name:"小红",
sex:"女",
phone:"13777777777"
});
//结果:姓名:小红,性别:女,年龄:22,电话:13777777777,QQ:12345678,生日:1980.12.29。




showUserInfo({ 
  name:"小李" 
}); 
//结果:姓名:小李,性别:男,年龄:22,电话:13888888888,QQ:12345678,生日:1980.12.29。 
showUserInfo({ 
  name:"小红", 
  sex:"女", 
  phone:"13777777777" 
}); 
//结果:姓名:小红,性别:女,年龄:22,电话:13777777777,QQ:12345678,生日:1980.12.29。 

ログイン後にコピー


とても簡単です!このように、パラメータが 100 個あっても怖くありません。

では、複数のパラメーターをいつ使用するのか、またそのようなパラメーター オブジェクトをいつ使用するのか?私の経験では、実際のニーズに応じて、1 つまたは 2 つのパラメーターを使用できる場合は、パラメーター オブジェクトは使用されません。 3 つ以上ある場合は、このパラメータ オブジェクトを使用します。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート