2010-06-19 6 views
1

Quelle est la manière la plus efficace de lire les attributs facultatifs dans un argument de paramètre optionnel. J'utilise quelque chose comme:lecture des attributs facultatifs à partir du paramètre facultatif dans javascript

f = func(var1, optionalsettings) { 
    var2 = (optionalsettings === undefined ? 0 
     : (optionalsettings['var2'] == null ? 0 : optionalsettings['var2'])); 
}; 

Mais j'ai le sentiment qu'il peut se faire plus efficacement, que ce soit en javascript ou jquery.

Répondre

3

Vous pourriez faire:

var var2 = (optionalsettings && optionalsettings['var2']) || 0; 

D'abord, vous vérifiez est optionalsettings existe. Si c'est le cas, vous essayez de retourner optionalsettings['var2']. Si cela échoue, vous retombez sur la valeur par défaut.

+0

Notez qu'il travaillerait sans parenthèses, comme '' && a priorité à '' ||, mais il est de cette façon un peu plus lisible. – Kobi

0

également possible de jquery étendre:

function myTest(arg1, arg2, optionalsettings) { 
    var settings = $.extend({ 
    opt1 : val1 
    , opt2 : val2}, optionalsettings || {}) 
... 
Questions connexes