javascript, question de newb sur || {}

javascript, question de newb sur || {} - HTML/CSS - Programmation

Marsh Posté le 19-11-2011 à 22:08:12    

donc si j'ai toto = toto || {}, ca sert à quoi exactement ?
 
Pour ceux d'ailleurs qui ont déjà joué avec le plugin cookie de jquery , la syntaxe c'est normalement  
 
$.cookie("lavariable", "la valeur", {expire:7, path: '/', domain: plop.com});
 
y a moyen que plop.com soit remplacé par une variable avec cette syntaxe ?

Reply

Marsh Posté le 19-11-2011 à 22:08:12   

Reply

Marsh Posté le 20-11-2011 à 15:39:22    

toto = toto || {}
veut dire que si toto n'est pas évalué à false (genre il est undefined ou null), il prend la valeur d'un objet vide, sinon il garde sa valeur actuelle.
Pratique pour la gestion des parametres par défaut d'une fonction par exemple :o

 

Pour la partie jQuery, tu peux faire ca en effet, genre :

Code :
  1. var setCookie = function  (laVariable, laValeur, domain)
  2. {
  3.   $.cookie (
  4.     laVariable || "lavariable",
  5.     laValeur || "la valeur",
  6.     { expire: 7, path: '/', domain: domain || "plop.com" }
  7.   );
  8. }
 

Donc si t'appelles la fonction sans parametre, ou avec undefined pour l'un d'entre eux, ca prendra les vals par défaut


Message édité par SICKofitALL le 20-11-2011 à 15:41:13

---------------
We deserve everything that's coming...
Reply

Marsh Posté le 20-11-2011 à 16:21:59    

t'es sur que "domain" sera évalué dans le cas de domain: domain ? (en gros comment il fait la diff entre un nom de variable et le "domain:" qui n'est pas un nom de variable)


Message édité par joce le 20-11-2011 à 16:25:18
Reply

Marsh Posté le 20-11-2011 à 17:11:21    

parce que le "domain:" dont tu parles est une propriété direct d'un objet, l'autre nom.
Si tu veux êter peinard avec ca, tu peux changer la fonction et au lieu de passer X parametres, tu n'en passes qu'un seul mais sous la forme d'un objet :

Code :
  1. var setCookie = function  (params)
  2. {
  3.   var p = {
  4.    laVariable: params.laVariable || "lavariable",
  5.    laValeur: params.laValeur || "la valeur",
  6.    domain: params.domain || "plop.com"
  7.   };
  8.   $.cookie (
  9.     p.laVariable,
  10.     p.laValeur,
  11.     { expire: 7, path: '/', domain: p.domain }
  12.   );
  13. }


 
tu appelles ca comme ca "setCookie ({ domain: "machin", laVariable: 123 });
 
C'est plus propre, ca te permet de passer les params dans l'ordre que tu veux, mais grosso modo, ca revient au même :)


---------------
We deserve everything that's coming...
Reply

Marsh Posté le 20-11-2011 à 17:14:24    

ok bon à savoir, je connaissais pas la vrai syntaxe d'un objet en JS :D
Instinctivement j'aurais mis ca, mais j'avais quelque doute.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed