这里是代码
var str = "Value1";
var str1 = "Value2";
var obj = {
[str]: str1
};
console.log(obj);
我将obj设为
{
Value1:"Value2"
}
但是我希望该对象为
{
"Value1":"Value 2"
}
任何人都可以解释这是怎么可能的吗?
答案 0 :(得分:-2)
首先,您的代码:var obj = {["Value1"]: "Value2"};
是错误的。你必须写:
var obj = {"Value1": "Value2"};
或var obj = {Value1: "Value2"};
。
然后,如果我对您的理解正确:您在评论中写道:
我想让Value1的双引号太动态意味着我也希望动态索引的双引号
答案:
对象{Value1:"Value2"}
与{"Value1":"Value2"}
相同。区别仅在于显示(拼写,编写)代码。
例如,如果执行以下代码,您将看不到区别:
var myObj1 = {"Value1":"Value2"};
var myObj2 = {Value1:"Value2"};
console.log(myObj1.Value1); //Value2
console.log(myObj2.Value1); //Value2
console.log(myObj1["Value1"]); //Value2
console.log(myObj2["Value1"]); //Value2
console.log(JSON.stringify(myObj1)); //{"Value1":"Value2"}
console.log(JSON.stringify(myObj2)); //{"Value1":"Value2"}