Maison >interface Web >js tutoriel >Un exemple de définition des valeurs par défaut pour les paramètres de la méthode JavaScript_Connaissances de base

Un exemple de définition des valeurs par défaut pour les paramètres de la méthode JavaScript_Connaissances de base

WBOY
WBOYoriginal
2016-05-16 15:31:381209parcourir

Avez-vous déjà rencontré une telle situation et écrit une fonction sans paramètres ?

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

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

Appel :

showUserInfo();

showUserInfo(); 

Plus tard, j'ai découvert que cette fonction est également nécessaire à d'autres endroits, mais certaines valeurs de variables ont été codées en dur dans la fonction. Que dois-je faire ? Ajoutez un paramètre.

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

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

Explication : name=name||"Xiao Ming" Ce code signifie que si name est nul, il est égal à la valeur par défaut "Xiao Ming". Vous pouvez aussi écrire comme ceci :

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

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


Appel :

showUserInfo('小李');

showUserInfo('小李'); 


Plus tard, les besoins ont changé et il a fallu ajouter l’âge. Bon, changeons-le :

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

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

Appel :

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

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


D'accord, que se passe-t-il si nous devons ajouter des paramètres tels que l'anniversaire, le numéro de téléphone, le sexe, le QQ, etc. ? Définir les valeurs par défaut une par une ? En fait, je vois beaucoup de gens faire ça. Regardons une manière plus simple. Il s'agit d'utiliser les extensions Jquery. Regardons d'abord le code :

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); 
} 

Explication : La fonction de $.extend(defaultSetting,settings) est de fusionner la configuration des paramètres entrants avec defaultSetting et d'écraser la configuration defaultSetting avec la configuration dans settings.

Appel :

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。 


C'est très simple ! De cette façon, même s’il y a 100 paramètres, vous n’avez pas peur.

Alors, quand utiliser plusieurs paramètres et quand utiliser un tel objet paramètre ? Mon expérience est que, selon les besoins réels, si un ou deux paramètres peuvent être utilisés, alors l'objet paramètre n'est pas utilisé. S'il y en a plus de 3, j'utiliserai cet objet paramètre.

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn