在三元运算符的条件中使用的Javascript冒号符号(

在三元运算符的条件中使用的Javascript冒号符号(

问题描述:

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 ||未定义,'? –

第一个冒号是将键与您正在构建的对象的值(例如var o = { foo: "bar" })分开的值。

它可以帮助用括号重写一遍:

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