我知道我们可以在JavaScript对象的运行时创建新属性,但是这个属性能赋值吗?例如:
var value = "New value";
var table = new Object();
var newValue = table[value];
现在,我知道值表格有一个叫做"value"的新属性。但是这个"value"键是否包含了"New Value"的信息呢?那么,这是否意味着现在表格对象像下面这样:
table = {
value:"New Value";
}
我知道我们可以在JavaScript对象的运行时创建新属性,但是这个属性能赋值吗?例如:
var value = "New value";
var table = new Object();
var newValue = table[value];
现在,我知道值表格有一个叫做"value"的新属性。但是这个"value"键是否包含了"New Value"的信息呢?那么,这是否意味着现在表格对象像下面这样:
table = {
value:"New Value";
}
// 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'];
不是这样的。你的代码:
var newValue = table[value];
并没有设置任何东西,因为在创建 table
的时候你没有分配任何属性,所以 newValue
将会是 undefined
。
如果你有一个被赋值的变量 value
,并且你想将该值分配给键为 value
的表格,你应该这样做:
table['value'] = value;
或者使用另一种方式:
table.value = value
额,不,我认为你还没有完全理解它。
所有这样做的只是将undefined
分配给newValue
,因为你试图访问table
的“New Value
”属性,但该属性不存在。
我认为你想做的是这样的:
var value = "New value";
var table = {};
table.value = value;
{}
在几乎任何情况下都比new Object()
更好。 - hugomg{ ... }
中使用分号 (;
) 是无效的。请使用逗号 (,
) 来分隔对象字面量内的属性。 - Rob W