2015-09-11 14 views
24

Qualcuno può spiegare come funziona il perché/come segue il metodo di assegnazione delle chiavi in ​​javascript?Parentesi quadrati Chiave di oggetti Javascript

a = "b" 
c = {[a]: "d"} 

ritorno:

Object {b: "d"} 
+0

@Tushar: Non c'è nessuna chiamata a 'Object' qui. Questo è completamente estraneo. –

+0

@FelixKling Array viene considerato come oggetto, 'typeof []' – Tushar

+0

@Tushar: gli array sono oggetti, ma qui non ci sono array e, di nuovo, nessuna chiamata a 'Object'. –

risposta

42

E 'il nuovo ES2015 (ECMAScript spec formalmente conosciuto come ES6) computed property name syntax. E 'una scorciatoia per l'assegnazione someObject[someKey] che si conosce da ES3/5:

var a = "b" 
var c = {[a]: "d"} 

è zucchero sintattico per:

var a = "b" 
var c = {} 
c[a] = "d" 
+0

Non è solo ES6 – Tushar

+0

@Tushar - dove altro funziona? Mi getta per me in un normale ambiente ES5 (Nodo 0.10). –

Problemi correlati