Odpowiedzi:
Jest to nowa składnia obliczonych nazw właściwości ES2015 (specyfikacja EcmaScript, formalnie znana jako ES6) . To skrót someObject[someKey]zadania, które znasz z ES3 / 5:
var a = "b"
var c = {[a]: "d"}
jest cukrem syntaktycznym dla:
var a = "b"
var c = {}
c[a] = "d"
Naprawdę użycie []daje doskonały sposób wykorzystania rzeczywistej wartości zmiennej jako właściwości klucza podczas tworzenia obiektów JavaScript ./
Jestem zadowolony z powyższej odpowiedzi i doceniam ją, ponieważ pozwoliła mi napisać to na małym przykładzie.
Wykonałem kod linia po linii na Node REPL (powłoka węzła).
> var key = "fullName"; // Assignment
undefined
>
> var obj = {key: "Rishikesh Agrawani"} // Here key's value will not be used
undefined
> obj // Inappropriate, which we don't want
{ key: 'Rishikesh Agrawani' }
>
> // Let's fix
undefined
> var obj2 = {[key]: "Rishikesh Agrawani"}
undefined
> obj2
{ fullName: 'Rishikesh Agrawani' }
>
Jedynym warunkiem jest użycie []notacji do uzyskiwania dostępu lub przypisywania rzeczy w obiektach, gdy nie wiemy jeszcze, co to będzie do czasu oceny lub uruchomienia.