在JavaScript文字中使用变量作为属性名
Use variable for property name in JavaScript literal?
我知道我们可以在运行时在Javascript对象中创建新属性,但该属性也可以分配值吗?例如,
var value = "New value";
var table = new Object();
var newValue = table[value];
现在,我知道值表有一个新的属性叫做"value"。但是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'];
希望这能澄清一些。
no。你的声明
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;
相关文章:
- 全局变量和全局对象的属性之间有什么区别吗
- 如何在Bootstrap Modal中为动态点击生成的变量设置jade属性
- Javascript使用变量设置属性
- 如何检查名为id的变量属性
- 将css属性替换为变量
- 如何从字符串变量访问对象属性
- 如何从jQuery设置控制器或全局变量的属性
- 将属性作为字符串存储在变量中
- 如何为HTML属性/选择器创建全局名称空间或变量
- 变量属性jQuery
- 如何获取保存在变量中的HTML代码的任何属性的值
- 在 javascript css 属性中使用变量
- 使用变量作为对象的属性名称
- 什么's;var'声明的变量和'这'在Javascript中创建了属性
- 如何在Jquery html elemet属性中附加字符串变量
- Javascript:如何对属性变量(例如var.hello.push)执行数组方法?太习惯AS3了
- 为什么调试器会给你“;undefined不是函数“;而不是只告诉您不是函数的属性/变量的名称
- 传递属性变量:黑屏
- 余烬模板不更新属性变量的变化
- 从方法返回时未解析的属性变量