Javascript等价于php's $object->{$stringvar} = 1,不带eval()


Javascript equivalent of php's $object->{$stringvar} = 1 without eval()?

如何从其他变量的值创建对象的属性,而不使用eval()函数?

带数组表示法:

obj[stringvar] = 1;
var object = {}, stringvar = "name";
object[stringvar] = 1;

您可以像这样使用其他变量作为属性名:

var a = 'property';
var b = {};
b[a] = 'hello';

也可以通过以下方式访问:

b.property;

类似这样的对象文字表示法:

var method = 'foo()';
// call it
myobject[method];

你可以这样做:

object[stringvar] = 1;

使用括号符号:

var o = { key: 'value' };
var member = 'key';
o[member] = 'oherValue';
var myobject = {};
var stringvar = "test";
myobject[stringvar] = 1;

Javascript对象允许按需创建属性。只要设置你想要的属性:

var object = {name:'A', id:1};
object.description = "Test";
alert(object.description);