Köşeli Parantez Javascript Nesne Anahtarı


109

Aşağıdaki JavaScript'te anahtar atama yönteminin nasıl / nasıl çalıştığını kimse açıklayabilir mi?

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

dönüş:

Object {b: "d"}

Yanıtlar:


162

Bu, yeni ES2015 (resmi olarak ES6 olarak bilinen EcmaScript spesifikasyonu) hesaplanmış özellik adı sözdizimidir . someObject[someKey]ES3 / 5'ten bildiğiniz görevin kısaltması :

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

sözdizimsel şekerdir:

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

27

Gerçekten kullanımı, JavaScript nesneleri oluştururken []değişkenin gerçek değerini anahtar /özellik olarak kullanmak için mükemmel bir yol sağlar .

Yukarıdaki cevaptan oldukça memnunum ve bunu küçük bir örnekle yazmama izin verdiği için minnettarım.

Node REPL'de (Node shell) kodu satır satır çalıştırdım .

> 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' }
>

6
const animalSounds = {cat: 'meow', dog: 'bark'};

const animal = 'lion';

const sound = 'roar';

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

Sonuç olacak

{cat: 'meow', dog: 'bark', lion: 'roar'};

-1

Ayrıca, []değerlendirme veya çalışma zamanına kadar ne olacağını henüz bilmediğimizde , yalnızca nesnelerdeki öğelere erişmek veya atamak için gösterimi kullanma koşulu .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.