Javascript 在创建对象时,是否有一种按字符串命名属性的方法?

Javascript 在创建对象时,是否有一种按字符串命名属性的方法?,javascript,Javascript,是否可以直接在对象声明本身内部命名对象属性,而不是事后命名 例如,这项工作: var name = "foo"; var obj = {}; obj[name] = "bar; // obj.foo === "bar" 但是有没有一种方法可以在对象本身内部进行,比如: var name = "foo"; var obj = { name: "bar" // obj.name === "bar" }; 我知道可以使用字符串作为属性名,所以我想这样做可以作为解决办法,但没有:

是否可以直接在对象声明本身内部命名对象属性,而不是事后命名

例如,这项工作:

var name  = "foo";
var obj   = {};
obj[name] = "bar; // obj.foo === "bar"
但是有没有一种方法可以在对象本身内部进行,比如:

var name  = "foo";
var obj   = {
    name: "bar" // obj.name === "bar"
};
我知道可以使用字符串作为属性名,所以我想这样做可以作为解决办法,但没有:

var obj   = {
    "" + name: "bar"
};

有办法做到这一点吗?

在ES2015中有,否则在ES5中就没有办法做到这一点

var name=“foo”;
var obj={
[姓名]:“酒吧”
};

console.log(obj)
它被称为计算属性名。您的注释是->//obj.name==='bar',您的意思是不是obj.foo=='bar'?。我很高兴我使用了节点,所以使用它没有问题!;)非常感谢@基思认为他模仿了我的例子。编辑它真是太好了…@eisbehr-是的,我只是复制粘贴了你问题中的代码,并添加了括号。你有首选的副本吗?怎么样?@eisbehr:这已经被问了10次了,请下次使用搜索