2017-10-11 124 views
0
function Menu(c) { 
    var c = { 
     names: c.names ? c.names : undefined, 
     fonts: c.fonts ? c.fonts : undefined 
    }; 

我是JavaScript新手。 一些地方,我發現這個代碼,我被困在這裏。在三元運算符的條件中使用的Javascript冒號符號(

所以我知道的是
Questionmark(?)的符號是有條件的(三元)運算符。
其語法

condition ? value1 : value2 

那麼問題1)爲什麼「:」在條件和值都被使用?

names: c.names ? c.names : undefined, 

和供參考(名稱)給出了一組名稱。

在此先感謝。

+1

'的名字:...'左邊是指的對象的鍵,rightside是指的價值,這是的結果三元運算符 – Lixus

+0

第一個冒號與三元運算符沒有任何關係...... var c = {foo},fonts:「bar」}' – epascarello

+0

爲什麼'var',其中給出了本地'c',爲什麼不使用邏輯或'''',如'names:c.names ||未定義,'? –

回答

2

第一個冒號是將鍵與您正在構建的對象的值(例如var o = { foo: "bar" })分開的值。

它可以幫助用括號重寫一遍:

var c = { 
    names: (c.names ? c.names : undefined), 
    fonts: (c.fonts ? c.fonts : undefined) 
};