2012-05-28 13 views

risposta

6

Mentre è considerato un Abusage, è possibile effettuare le seguenti operazioni:

var obj = newObject || defaultObject; 

Nota che se newObject è di alcun valore falsy (come 0 o una stringa vuota), verrà restituito defaultObject come valore di obj. Con questo in mente, potrebbe essere preferibile utilizzare l'operatore ternario o un'istruzione if standard.

var obj = ("undefined" === typeof defaultObject) ? defaultObject : newObject ; 
+0

Questo è un po '* * diverso anche se, come si tradurrà in 'defaultObject' per * qualsiasi * valore false-y di 'newObject'. Cioè, non esiste un equivalente "diretto", quindi il ternario ('???) con un'uguaglianza esplicita potrebbe catturare meglio un dato intento ... –

+0

@pst Grandi punti. – Sampson

+0

falsy significa tipo booleano? –