2012-05-28 34 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表示布尔类型? –