2015-11-19 21 views
34

Sono nuovo di ECMAScript 6, e durante il tentativo di imparare Ember, ho visto il seguente codice di stile occassionally:Javascript (ES6) const con parentesi graffe

const { 
    abc, 
    def 
} = Object; 

Ho cercato Google e molti siti che spiegano le nuove specifiche ES6. So che questa non è l'implementazione corrente, perché la mia console dà un errore quando inserisco quello.

Cosa significa questo codice?

UPDATE

ho incollato questo frammento in Babel's transpiler, e questo è ciò che è tornato:

"use strict"; 

var abc = Object.abc; 
var def = Object.def; 

Sono ancora confuso su ciò che questo sta cercando di realizzare.

+3

Ecco un esempio, sito piuttosto buono quando si desidera giocare con alcuni elementi di ES6. http://www.es6fiddle.net/ih5zgb2r/ – ste2425

risposta

63

È un ES2015 destructuring assignment.

Potrebbe essere utile vederlo riscritto in un modo più dettagliato.

const abc = Object.abc; 
const def = Object.def; 

È un modo sinteticamente teso di estrarre le proprietà dagli oggetti, in variabili.

// you can rewrite this 
const name = app.name; 
const version = app.version; 
const type = app.type; 

// as this 
const { name, version, type } = app; 

fornitori del browser sono still implementing la specifica ES2015 che è probabilmente perché non ha funzionato nel tuo browser.

Tuttavia, c'è un progetto chiamato Babel che consente di convertire le specifiche future di Javascript in ES5. Puoi provare il codice ES2015 in their REPL.

+0

penso che il tuo link non sia corretto, hmm digest cycle. – ste2425

+0

È possibile aggiungere un collegamento a MDN nella risposta: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment –

+1

Troppe schede, non abbastanza appunti. Grazie –

Problemi correlati