来自变量的Javascript属性

时间:2012-07-05 15:07:34

标签: javascript variables object properties

我的JavaScript代码有问题。我现在开始处理一些更复杂的事情,似乎在网上找到了一些答案,但不幸的是我无法修复它。问题是:

我希望变量sGetMobileFieldValMob能够获取参数,但是这样不起作用:

var oFieldValues = { sGetMobileField:) { Value: ValMob } };

变量似乎不能用作对象属性。有人可以帮我解决吗?

谢谢, 戴恩

2 个答案:

答案 0 :(得分:3)

试试这个

var oFieldValues = { };
oFieldValues[ sGetMobileField ] = { Value: ValMob };

您可以将变量用作属性标识符,但不能在对象文字中使用。您必须先创建对象,然后使用

添加动态属性
obj[ varToHoldPropertyName ] = someValue;

答案 1 :(得分:0)

首先,语法看起来不正确。我猜sGetMobileField:之后的“)”是一个错字。但是,你在这里做的是设置一个名为“sGetMobileField”的属性:

var oFieldValues = { sGetMobileField: { Value: ValMob } };

正是出于同样的原因,使用Value设置了一个名为“Value”的属性,而不是一个从Value变量中获取其名称的属性。这是一致的,对吗?所以你将拥有:

console.log(oFieldValues.sGetMobileFields.Value) // the content of ValMob.

幸运的是,在JS中你可以使用方形符号而不是点符号。这意味着,您可以使用字符串访问属性。所以,例如:

console.log("Hello");

是相同的:

console["log"]("Hello");

因此,您可以使用变量的值来指定要访问的对象的属性。在你的情况下:

var oFieldValues = {};

oFieldValues[sGetMobileField] = { Value: ValMob };

请注意,遵循JS中通常使用的命名约定,Value应为valueValMob应为valMob