C'est un Objet d'Initialiseur de Propriété d'Abréviation dans l'ES6.
var f = {a, b, c, d:1}; // Will be equal to {a:a, b:b, c:c, d:1}
Cela fonctionne parce que la valeur de la propriété a le même nom que l'identificateur de propriété. Ce nouvel ajout à la syntaxe de l' Objet Initialiser (article 11.1.5) dans les dernières ECMAScript 6 projet de Rev 13. Et bien sûr, tout comme les limitations de ECMAScript 3, vous ne pouvez pas utiliser un mot réservé votre nom de la propriété.
Une telle abréviation de ne pas changer radicalement votre code, il ne fait que tout ce qui est 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 le support de ces notations. Non environnements favorables, ces notations seront conduire à des erreurs de syntaxe.
Cette notation abrégée offre objet d'appariement plutôt bien:
Dans ECMAScript5 ce que nous avons l'habitude de faire:
var tmp = getDate();
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();