我刚刚发现可以创建一个对象并在大括号中动态设置密钥,而不需要第二行。
var a = "dynamicKey";
var obj = {[a]: "value"}
VS
var a = "dynamicKey";
var obj = {};
obj[a] = "value";
这是否总是可行或某些规格(ES3,ES5)?
答案 0 :(得分:3)
它被称为bracket notation,自ES6 / JavaScript2015起支持。同时检查'计算属性键'部分here。您也可以直接查看ES6/Javascript2015 spec(搜索'括号表示法')。
所有浏览器目前都不支持ES6 / Javascript2015,因此最好使用babel之类的工具将ES6 / Javascript2015转换为ES5,或者使用您提供的旧设置属性方法。Webkit(例如Chrome)现在是100% ES6/Javascript2015 compatible。如果您只需要支持Chrome / Webkit浏览器,则无需再转换ES5。