È una scorciatoia della proprietà inizializzatore di oggetti in ES6.
var f = {a, b, c, d:1};
Questo funziona perché il valore della proprietà ha lo stesso nome dell'identificatore della proprietà. Questa è una nuova aggiunta alla sintassi di Object Initialiser ( sezione 11.1.5 ) nell'ultima bozza di ECMAScript 6 Rev 13 . E ovviamente, proprio come le limitazioni impostate da ECMAScript 3, non puoi usare una parola riservata come nome della tua proprietà.
Una tale scorciatoia non cambierà drasticamente il tuo codice, ma rende tutto solo un po 'più dolce!
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 };
}
Consultare la tabella di compatibilità per il supporto di queste notazioni. In ambienti non di supporto, queste notazioni porteranno a errori di sintassi.
Questa notazione abbreviata offre abbastanza bene la corrispondenza degli oggetti:
In ECMAScript5 cosa facevamo:
var tmp = getData();
var op = tmp.op;
var lhs = tmp.lhs;
var rhs = tmp.rhs;
Può essere eseguito in ECMAScript6 con una singola riga di codice:
var { op, lhs, rhs } = getData();