2012-05-28 61 views

回答

6

雖然它被認爲是一個abusage,你可以做到以下幾點:

var obj = newObject || defaultObject; 

注意,如果newObject任何falsy值(如0或空字符串),defaultObject將被退回作爲obj的值。考慮到這一點,可能最好使用三元運算符或標準的if語句。

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

這是* *略有不同,雖然,因爲這將導致'defaultObject'爲*任何* 'newObject'的false-y值。也就是說,沒有「直接」等價的,所以具有明確相等的三元('??')可以更好地捕獲給定的意圖... – 2012-05-28 04:34:26

+0

@pst偉大的觀點。 – Sampson

+0

falsy表示布爾類型? –