J’ai eu récemment à coder une fonction Javascript qui comportait un argument optionnel. Comment faire alors pour donner à cet argument une valeur par défaut?
En PHP, par exemple, on peut procéder de la manière suivante :
function centrer(&$map, $zoom=15) {
// ...
}
En Javascript, on ne peut déclarer la valeur par défaut d’un argument dans la déclaration de la fonction. Cependant, on peut faire ceci :
function centrer(map, zoom) {
if (!zoom) { zoom = 15; }
zoom = (zoom) ? zoom : 15; // alternative
// ...
}
On pourrait également utiliser la méthode extend de jQuery qui permet de compléter un objet Javascript en se basant sur un autre.
function centrer(params) {
var defaults = { zoom: 15 };
$.extend(defaults, params);
// ...
}
Dans l’exemple précédent, on passerait en argument un seul et unique objet qui pourrait contenir, ou non, les propriétés map et zoom. Si la propriété zoom n’est pas dans les propriétés de l’objet fourni, elle est réglée à 15.
Pour plus d’informations au sujet des arguments en Javascript, cet article de OpenJS est très complet.
Pour ma part, j’utilise :
Et cela fonctionne tres bien.
David Duret (11 janvier 2008 à 10:47 EST)
Ah oui, en effet, cela m’était sorti de la tête. Cette syntaxe est utilisée énormément dans jQuery…
Rémi Prévost (11 janvier 2008 à 11:42 EST)