可能重複:
What does 「var FOO = FOO || {}」 mean in Javascript?JavaScript對象創建?
我多次發現這樣的JavaScript對象創建語句。
var MyObj = MyObj || {};
有人可以解釋上述說法的意義嗎?
爲什麼我們不能只創建
var MyObj = {};
感謝。
可能重複:
What does 「var FOO = FOO || {}」 mean in Javascript?JavaScript對象創建?
我多次發現這樣的JavaScript對象創建語句。
var MyObj = MyObj || {};
有人可以解釋上述說法的意義嗎?
爲什麼我們不能只創建
var MyObj = {};
感謝。
如果MyObj
已經存在,該怎麼辦?
如果alreay存在..聲明
var MyObj = {}
重置對象(這是壞的)
因此它通常與||
做如果它已經存在,保留不管它是什麼。 ..否則創建一個新的對象。
的||
運營商說:
this || that
- >this OR that
所以,在你的榜樣
myObj
是myObj
或新的對象,如果myObj
沒有定義或設置爲falsy值(null, 0, "", false, undefined
)
var MyObj = MyObj || {};
T帽子簡單地說:「如果MyObj
已經存在並且具有真值,保留它;否則,創建新的對象。」這是在做可選參數的功能,例如常見的方式。
見MDN對logical operators頁關於這一主題的更多信息。
這意味着,如果MyObj中進行評估,以假(即它是空的或未定義的)然後創建一個新的對象,它是一個簡短的形式,利用這樣一個事實,即如果MyObj被計算爲真時被轉換爲布爾值(即它不是空的和定義)OR的第二部分表達不被評估
很多謝謝你想要水晶般清晰的信息:) – Ravi 2012-03-14 10:25:01
陷阱...謝謝 – Ravi 2012-03-14 10:24:40