Es una abreviatura de propiedad del inicializador de objetos en ES6.
var f = {a, b, c, d:1};
Esto funciona porque el valor de la propiedad tiene el mismo nombre que el identificador de la propiedad. Esta es una nueva adición a la sintaxis de Object Initialiser ( sección 11.1.5 ) en el último borrador de ECMAScript 6 Rev 13 . Y, por supuesto, al igual que las limitaciones establecidas en ECMAScript 3, no puede usar una palabra reservada como nombre de propiedad.
Esta taquigrafía no cambiará drásticamente su código, ¡solo hará que todo sea un poco más dulce!
function createCar(name, brand, speed) {
return { type: 'Car', name: name, brand: brand, speed: speed };
}
function createSweetCar(name, brand, speed) {
return { type: 'Car', name, brand, speed };
}
Consulte la tabla de compatibilidad para obtener soporte para estas notaciones. En entornos no compatibles, estas notaciones darán lugar a errores de sintaxis.
Esta notación abreviada ofrece la coincidencia de objetos bastante bien:
En ECMAScript5 lo que solíamos hacer:
var tmp = getData();
var op = tmp.op;
var lhs = tmp.lhs;
var rhs = tmp.rhs;
Se puede hacer en ECMAScript6 con una sola línea de código:
var { op, lhs, rhs } = getData();