2012-05-28 20 views

Antwort

6

Während es eine abusage betrachtet hat, können Sie wie folgt vorgehen:

var obj = newObject || defaultObject; 

Beachten Sie, dass, wenn newObject jeder falsy Wert ist (wie 0 oder ein leerer String), wird defaultObject zurückgegeben werden als der Wert von obj. In diesem Sinne kann es bevorzugt sein, entweder den ternären Operator oder eine Standard-if-Anweisung zu verwenden.

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

Dies ist * etwas * jedoch anders, als es in 'defaultObject' für * any führen * false-y-Wert von 'newObject'. Das heißt, es gibt kein "direktes" Äquivalent, so dass das ternäre ("??") mit einer expliziten Gleichheit eine gegebene Absicht besser erfassen könnte ... –

+0

@pst Großartige Punkte. – Sampson

+0

Falsy bedeutet boolescher Typ? –

Verwandte Themen