Il s'agit d'un raccourci de propriété Object Initializer dans ES6.
var f = {a, b, c, d:1}; // Will be equal to {a:a, b:b, c:c, d:1}
Cela fonctionne car la valeur de la propriété a le même nom que l'identificateur de propriété. Il s'agit d'un nouvel ajout à la syntaxe de Object Initialiser ( section 11.1.5 ) dans le dernier projet d'ECMAScript 6 Rev 13 . Et bien sûr, tout comme les limitations définies dans ECMAScript 3, vous ne pouvez pas utiliser un mot réservé comme nom de propriété.
Un tel raccourci ne changera pas radicalement votre code, cela ne fera que rendre tout un peu plus doux!
function createCar(name, brand, speed) {
return { type: 'Car', name: name, brand: brand, speed: speed };
}
// With the new shorthand form
function createSweetCar(name, brand, speed) {
return { type: 'Car', name, brand, speed }; // Yes it looks sweet.
}
Veuillez consulter le tableau de compatibilité pour la prise en charge de ces notations. Dans les environnements non compatibles, ces notations entraîneront des erreurs de syntaxe.
Cette notation abrégée offre une correspondance d'objets assez bien:
Dans ECMAScript5, ce que nous faisions:
var tmp = getData();
var op = tmp.op;
var lhs = tmp.lhs;
var rhs = tmp.rhs;
Peut être fait dans ECMAScript6 avec une seule ligne de code:
var { op, lhs, rhs } = getData();