如何安全地在对象中使用变量?

时间:2014-05-10 21:18:41

标签: javascript eval

我无聊并且弄乱了我的控制台,我想出了以下代码:

我正在尝试类似的事情:

x = 16;
y = 26;
f = { x+y:"String!"};

期待某事或以某种方式做:

Object {1626: "String!"}

或者至少

Object {42: "String!"}

我最终得到了

x = 16;
y = 26;
eval("f = { "+x+y+":\"String!\"}");

按预期返回:

Object {1626: "String!"}

我总是被告知要避免使用eval(),而且由于安全问题,我从不考虑使用它。有没有办法在声明属性时使用变量(对不起,如果我不知道它的确切名称)

2 个答案:

答案 0 :(得分:2)

x = 16;
y = 26;
f = {};
f[x+''+y] = "String!"; // For f[1626]

f[x+y] = "String!"     // For f[42]

答案 1 :(得分:1)

当我开始学习JavaScript时,我犯了同样的错误:JavaScript set object key by variable

首先必须制作对象:

var f = {};

然后您可以使用变量动态创建密钥:

var x = 16, y = 26;
f[x+y] = "Integer"; 
f[x.toString() + y.toString()] = "String";