• Skip to primary navigation
  • Skip to content
  • Skip to footer

DES GEEKS ET DES LETTRES

Blog depuis 2009

  • Facebook
  • Flickr
  • Instagram
  • Pinterest 
  • Flux RSS
  • Twitter

Navigation privée sur internet

VPN et navigation privée sur internet

  • Notre Blog
  • Comment utiliser un VPN
  • Aspirer les éléments d’un site
  • Un VPN c’est quoi ?
Le Vpn n°1 français

JavaScript : minimiser le nombre d’arguments des fonctions

Vous êtes ici: Des Geeks et des lettres / Programmation / JavaScript : minimiser le nombre d’arguments des fonctions

1 octobre 2010 4 Comments

Voici un moyen très pratique de simplifier l’écriture de fonctions nécessitant un grand nombre d’arguments optionnels.

Au lieu de passer de manière classique les arguments de la fonction un à un, il est possible de passer un unique argument de type objet comprenant l’ensemble des arguments nécessaires. L’objet ainsi passé est communément appelé un “JavaScript Object Literal“.

© http://blogs.sitepointstatic.com
© http://blogs.sitepointstatic.com

Manière habituelle

Voici une fonction qui permet d’afficher le contenu d’une carte, l’argument “name” est obligatoire tandis que les arguments “type”, “manacost” et “edition” sont facultatifs.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function showCardBefore(name, type, manacost, edition) {
document.write("<p><strong>Name:</strong> " + name + "<br />");
if (typeof type === "string") {
document.write("<strong>Type:</strong> " + type + "<br />");
}
if (typeof manacost === "string") {
document.write("<strong>Mana cost:</strong> " + manacost + "<br />");
}
if (typeof edition === "object") {
document.write("<strong>Edition:</strong> " + edition[0] + " [" + edition[1] + "]" + "<br />");
}
}
 
showCardBefore("Arid Mesa");
showCardBefore("Mark Teixeira", "Birds of Paradise", "G");
showCardBefore("Rustic Clachan", "Land", "", ["Morningtide", "01/02/2008"]);

Nous appelons la fonction de 3 manières différentes, avec un nombre différent d’arguments à chaque fois. Nous observons que plus il y a d’arguments à saisir et plus la fonction est difficile à lire ou à maintenir.

Manière pratique

Voici la même fonction qui prend en paramètre un seul argument qui contient l’ensemble des données d’une carte.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
function showCardAfter(args) {
document.write("<p><strong>Name:</strong> " + args.name + "<br />");
if (typeof args.type === "string") {
document.write("<strong>Type:</strong> " + args.type + "<br />");
}
if (typeof args.manacost === "string") {
document.write("<strong>Mana cost:</strong> " + args.manacost + "<br />");
}
if (typeof args.edition === "object") {
document.write("<strong>Edition:</strong> " + args.edition.name + " [" + args.edition.release + "]" + "<br />");
}
}
 
showCardAfter({
name: "Arid Mesa"
});
 
showCardAfter({
name: "Birds of Paradise",
type: "Creature",
manacost: "G"
});
 
var card = {
name: "Humble",
type: "Instant",
manacost: "1W",
edition: {
name : "Zendikar",
release : "01/11/2009"
}
};
showCardAfter(card);

Le nombre de lignes de code est légèrement plus élevé avec cette seconde méthode mais elle présente un avantage certain lorsque le nombre d’arguments est important :

  1. La fonction est simplifiée avec l’acceptation d’un unique argument en entrée (args)
  2. La valeur des arguments devient simple à lire et peut facilement être mise à jour ou modifiée
  3. Le lien entre la valeur et l’argument est plus direct et donc facilement compris

Utilisation

Si vos fonctions n’utilisent que très peu d’arguments, alors cette technique n’est peut-être pas utile car elle pourrait avoir l’effet inverse.

Par contre sur des fonctions dont le nombre d’arguments n’est pas encore figé ou lorsque vous savez qu’il en faudra beaucoup, alors c’est une technique qui à mon sens vaut le coup d’être appliquée.

Category iconProgrammation Tag iconarguments,  fonctions,  javascript,  javascript object literal

Auteur – Mallory LEBEL

Mallory Lebel a été écrivain de romans avant de devenir entrepreneur web. Sa passion est l'écriture sur internet, quant à ses sujets ils vont de la confidentialité online au contrôle parental. Il est également le fondateur de Untelephone.com.


Utilisez notre moteur de recherche


Sur Des Geeks et des lettres nous vous conseillons les 2 VPN suivants :
  • d’une part parce qu’ils ne conservent pas du tout vos données de connexion
  • d’autre part parce qu’ils cryptent et sécurisent votre connexion en même temps qu’ils vous rendent anonymes
Flèche double bas
→ Le Vpn Français
→ Nord Vpn

Lisez aussi

Mon adresse ip

Pour bien connaître son adresse ip

Un ordinateur dehors

Plugins et extensions favorables ou destructeurs de mon anonymat en ligne

Reader Interactions

Comments

  1. Commentaire :

    1 octobre 2010 at 1 h 02 min

    Simplification de l’écriture de fonctions = gain de vitesse pour le programme je présume ?

    Répondre
  2. Commentaire :

    1 octobre 2010 at 9 h 33 min

    Si en disant “gain de vitesse” tu sous-entends gain de vitesse d’exécution alors je ne pense pas pour cet exemple précis, c’est plutôt une bonne pratique d’écriture qui rend la fonction plus compréhensible pour un développeur qui tomberai dessus pour la première fois.

    Répondre
  3. Commentaire :

    9 octobre 2010 at 19 h 06 min

    J’ai un vague souvenir d’un truc équivalent en C++, mais j’en suis plus certain.

    Répondre
  4. Commentaire :

    9 octobre 2010 at 21 h 56 min

    Certainement, en Java elle existe depuis Java Tiger (Java 5.0) avec les VarArgs :

    1
    public static String format(String pattern, Object... arguments);

    Répondre

Laisser un commentaire Annuler la réponse

Nous vous conseillons Le Vpn n°1 français

Pour garantir votre confidentialité, assurez-vous d'avoir un VPN qui ne stocke pas les journaux en ligne. L'utilisation d'un service VPN sans journalisation devrait d'ailleurs être un must-have. Il vous protégera contre une surveillance gouvernementale et empêchera votre fournisseur d'accès Internet de connaître votre activité en ligne.

Sans aucune journalisation

Footer

Des Geeks et des lettres

Liberté sur internet

https://desgeeksetdeslettres.com/

Blog depuis 2009

Rechercher dans nos articles :

Pages utiles

  • Accueil
  • Contact
  • Blog
  • Mentions légales
  • Plan du site
  • Rubriques

A la une

  • Hide my ass
  • NordVpn
  • Hoxx Vpn
  • VPN Gate
  • VPN Opera
  • Thunder Vpn

Les auteurs

Présentation des auteurs

Newsletter

Les articles de notre blog directement dans votre messagerie.

  • Facebook
  • Flickr
  • Instagram
  • Pinterest 
  • Flux RSS
  • Twitter

Copyright © 2019 Des Geeks et des lettres Blog depuis 2009 Return to top