2012-05-28 25 views

Odpowiedz

6

Choć jest to uważane za abusage, można wykonać następujące czynności:

var obj = newObject || defaultObject; 

pamiętać, że jeśli newObject jest jakiegokolwiek falsy wartości (takich jak 0 lub pusty ciąg znaków), zostanie zwrócony defaultObject jako wartość obj. Mając to na uwadze, może być preferowane użycie operatora trójskładnikowego lub standardowego polecenia if.

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

To jest * * nieznacznie różni się jednak, ponieważ spowoduje to 'defaultObject' dla * każdy * false-y wartość 'newObject'. Oznacza to, że nie ma "bezpośredniego" - ekwiwalentnego, więc trójskładnik ("??") z wyraźną równością może uchwycić daną intencję lepiej ... –

+0

@pst Świetne punkty. – Sampson

+0

falsy oznacza typ boolowski? –