在常量中使用Javascript扩展运算符
重新界定原来的问题,因为它造成了混乱- 下面的代码-在常量中使用Javascript扩展运算符,javascript,Javascript,重新界定原来的问题,因为它造成了混乱- 下面的代码- var BoldText = '' const currentTheme = { BoldText: { color: 'black' }, Text:{ ...BoldText, fontSize:10 } } 生成此输出- console.log(currentTheme.Text) VM254:1 {fontSize: 10} {color:'black', fontSize: 10} 而我希望这能产生这个
var BoldText = ''
const currentTheme = {
BoldText: {
color: 'black'
},
Text:{ ...BoldText, fontSize:10 }
}
生成此输出-
console.log(currentTheme.Text)
VM254:1 {fontSize: 10}
{color:'black', fontSize: 10}
而我希望这能产生这个输出-
console.log(currentTheme.Text)
VM254:1 {fontSize: 10}
{color:'black', fontSize: 10}
有人能帮我理解为什么吗?在您的示例中,
var BoldText
未设置,因此未定义。当您要调用它时,currentTheme
中的BoldText
尚未声明,这将导致错误
相反,您可以在外部定义BoldText
,然后在currentTheme
中多次使用它。
const BoldText={
颜色:'黑色',
};
const currentTheme={
黑体字,
正文:{
…BoldText,//使用BoldText的内容
fontSize:10,//并添加更多内容。
}
}
console.log(currentTheme.text);//现在,`BoldText`的内容在`currentTheme.text`
中,您已经声明了变量“BoldText”,但从未定义过它。这就是为什么它显示未定义。
此外,扩展运算符中也存在语法错误
看看下面的代码
var BoldText = {foo: 'bar'};
const currentTheme = {
BoldText: {
color: 'black'
},
text:{ ...BoldText }
}
为什么要传播?听起来您可能想要text:{BoldText}
{…{BoldText},fontSize:10}
这应该是{…BoldText,fontSize:10}
(扩展BoldText
)?您希望在BoldText
中有什么样的值?原语、数组还是对象?如果你能展示一些你想要的具体例子,那就是great@ShibasisSengupta请用你想要的结果的一些例子来编辑你的问题。关于例子的请求是否有一些混淆?请给出一个BoldText
对象的真实示例,说明生成的currentTheme
应该是什么样子。OP在currentTheme
中有一个名为BoldText
的属性,它不是对BoldText
变量的引用,因此我认为您的答案可能有点离谱。在我看来——尽管我在这里做了假设——OP首先希望重用currentTheme.BoldText
。是的,这个问题仍然很令人困惑。根据修改后的问题,这似乎是正确的答案。OP似乎希望所有的BoldText
实例都相同,因此这需要将const BoldText
设置为对象中需要的属性。接受它。。。这是最接近的,因为它可以得到什么我正试图做。。。我的方法是错误的。。。对不起,这是漫长的一天