【发布时间】:2014-06-28 11:32:50
【问题描述】:
我对我的控制台感到无聊和混乱,我想出了以下代码:
我正在尝试类似:
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(),并且出于安全考虑,甚至从不考虑使用它。有没有办法在声明属性时使用变量(对不起,如果我不知道它的确切名称)
【问题讨论】:
-
f = {}; f[x+y] = "String"; f[x.toString() + y.toString()] = "String"; -
你碰巧知道变量
{foo: "bar"}的确切类型,所以我可以在网上查到更多,typeof()只说对象... -
那只是一个
object...这是它的确切类型。 -
@Codingale 是,但
Array("foo", "bar") instanceof Array也将返回 true。 Javascript 中的所有数组都是对象,但并非所有对象都是数组。函数也是对象。
标签: javascript eval