它是ES6中的Object Initializer 属性简写。
var f = {a, b, c, d:1}; // Will be equal to {a:a, b:b, c:c, d:1}
这是可行的,因为属性值与属性标识符具有相同的名称。这是最新ECMAscript6草案Rev13中对象初始化程序第11.1.5节]的语法的新补充。当然,就像ECMAscript3中设置的限制一样,您不能使用保留字作为属性名称。
这样的简写不会显着改变您的代码,只会使所有内容变得更甜蜜!
function createCar(name, brand, speed) { return { type: 'Car', name: name, brand: brand, speed: speed };}// With the new shorthand formfunction createSweetCar(name, brand, speed) { return { type: 'Car', name, brand, speed }; // Yes it looks sweet.}
请参阅兼容性表以获取对这些符号的支持。在不支持的环境中,这些符号将导致语法错误。
这种简写形式可以很好地匹配对象:
在 ECMAscript5中 ,我们曾经做过的事情:
var tmp = getData();var op = tmp.op;var lhs = tmp.lhs;var rhs = tmp.rhs;
只需一行代码即可在 ECMAscript6 中完成:
var { op, lhs, rhs } = getData();
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)