Kunci Objek Javascript Tanda Kurung Persegi

109

Adakah yang bisa menjelaskan bagaimana mengapa / bagaimana metode di bawah ini menetapkan kunci dalam JavaScript bekerja?

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

kembali:

Object {b: "d"}
lcharbon.dll
sumber

Jawaban:

162

Ini adalah sintaks nama properti penghitung ES2015 (spesifikasi EcmaScript secara resmi dikenal sebagai ES6) . Ini adalah singkatan dari someObject[someKey]tugas yang Anda ketahui dari ES3 / 5:

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

adalah gula sintaksis untuk:

var a = "b"
var c = {}
c[a] = "d"
Sean Vieira
sumber
27

Benar-benar penggunaan []memberikan cara terbaik untuk menggunakan nilai aktual variabel sebagai properti kunci saat membuat objek JavaScript ./

Saya cukup puas dengan jawaban di atas dan saya menghargainya karena memungkinkan saya untuk menulis ini dengan sedikit contoh.

Saya telah mengeksekusi kode baris demi baris pada Node REPL (Node shell).

> 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' }
>
hygull
sumber
6
const animalSounds = {cat: 'meow', dog: 'bark'};

const animal = 'lion';

const sound = 'roar';

{...animalSounds, [animal]: sound};

Hasilnya akan seperti itu

{cat: 'meow', dog: 'bark', lion: 'roar'};
monireh d
sumber
-1

Juga, hanya kondisi untuk menggunakan []notasi untuk mengakses atau menugaskan barang-barang dalam objek ketika kita belum tahu apa itu sampai evaluasi atau runtime.

Eldiyar Talantbek
sumber