是否有一种方法在对象创建时通过字符串命名属性
Is there a way to name a property by string on object creation?
是否可以直接在对象声明本身内部命名对象属性,而不是在之后进行命名?
例如:
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 = {
[name]: "bar"
};
console.log(obj)
从ECMAScript 2015开始,对象初始化语法也是支持计算属性名。它允许你放入一个表达式在括号
[]
中,它将被计算为属性名。这是对称于属性访问器语法的括号表示法,您可能已经使用它来读取和设置属性。现在你也可以在对象字面量中使用相同的语法。
MDN上对象初始化式的计算属性
相关文章:
- 如何避免JSON.stringify在特殊情况下返回undefined,从而为JSON.parse创建字符串失败
- 为什么可以't JavaScript构造函数创建字符串或数字
- 如何利用jquery在web应用程序中创建字符串资源管理系统
- 通过多次单击创建字符串
- 创建字符串中找到的所有图像的数组的最佳方法是什么
- 使用 join() 或 concat 创建字符串
- 为原型中的函数创建字符串名称
- 如何在AngularJS中创建字符串的Add/Remove数组
- 如何创建字符串“;替换所有“;作用
- Node.js如何根据目录中的文件名创建字符串数组
- 创建字符串筛选器比较的最佳方式
- 使用 .each 从表创建字符串,如何在每行后添加换行符
- 从占转义字符的字符数组创建字符串
- Javascript:通过不同的方法创建字符串
- 在另一个集合中存储引用会创建对象,但不会创建字符串Meteor
- 删除PHP中JSON数组的索引,创建字符串版本的索引
- 在javascript中创建字符串值数组的简写
- Javascript创建字符串+ "“+
- 在Javascript中创建字符串时遇到麻烦
- 在Python中,你可以像在JavaScript中那样创建字符串函数的原型