我知道我们可以在运行时在Javascript对象中创建新属性但是该属性是否也可以赋值?例如。
var value = "New value";
var table = new Object();
var newValue = table[value];
现在,我知道值表有一个名为“value”的新属性。但是这个“值键”包含的信息是“新值”。那么,这是否意味着现在表对象如下:
table = {
value:"New Value";
}
答案 0 :(得分:5)
您对分配的访问感到困惑。
// Assigns a variable named 'value' with a value of 'New Value'.
var value = "New value";
// Creates a variable named 'table' as a blank Object.
var table = new Object(); // Alternatively - table = {};
// Attempts to access "New Value" from object "table" which returns undefined.
var newValue = table[value];
如果要为对象指定属性,请执行以下操作:
// Assumes table is still an object.
table['key'] = 'value';
// Note that I almost _always_ opt for the variable['key'] notation over
// the variable.key notation because it allows you to use keys
// that would otherwise not be valid as identifiers.
table['Some Key'] = 'Some Value'; // This works.
table.Some Key = 'Some Value'; // This does not.
稍后,当您想要检索该值并将其存储在新变量中时,就是这样:
var newVariable = table['key'];
希望澄清一些。如果我能扩展它的任何部分,请告诉我。
答案 1 :(得分:3)
没有。你的陈述
var newValue = table[value];
未设置任何内容,因为在您创建table
时未指定任何属性,newValue
将为undefined
。
如果您为value
变量分配了一个值,并且您希望将该值分配给密钥value
下的表格,那么您想要
table['value'] = value;
或者
table.value = value
答案 2 :(得分:1)
所有这一切都是将undefined
分配给newValue
,因为您正在尝试访问table
的“New Value
”属性,该属性不存在。< / p>
我认为你要做的是:
var value = "New value";
var table = {};
table.value = value;