Quello che stai guardando è un compito destrutturante. È una forma di corrispondenza dei modelli come in Haskell.
Utilizzando l'assegnazione destrutturante è possibile estrarre valori da oggetti e array e assegnarli a variabili dichiarate di recente utilizzando la sintassi letterale dell'oggetto e dell'array. Questo rende il codice molto più succinto.
Per esempio:
var ascii = {
a: 97,
b: 98,
c: 99
};
var {a, b, c} = ascii;
Il codice sopra è equivalente a:
var ascii = {
a: 97,
b: 98,
c: 99
};
var a = ascii.a;
var b = ascii.b;
var c = ascii.c;
Allo stesso modo per gli array:
var ascii = [97, 98, 99];
var [a, b, c] = ascii;
Questo è equivalente a:
var ascii = [97, 98, 99];
var a = ascii[0];
var b = ascii[1];
var c = ascii[2];
È inoltre possibile estrarre e rinominare una proprietà dell'oggetto come segue:
var ascii = {
a: 97,
b: 98,
c: 99
};
var {a: A, b: B, c: C} = ascii;
Questo è equivalente a:
var ascii = {
a: 97,
b: 98,
c: 99
};
var A = ascii.a;
var B = ascii.b;
var C = ascii.c;
È tutto quello che c'è da fare.