2015-09-11 5 views
24

Может ли кто-нибудь объяснить, как почему/как работает метод присвоения ключей в javascript ниже?Квадратные скобки Ключ объекта Javascript

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

возвращение:

Object {b: "d"} 
+0

@Tushar: Там нет вызова 'Object' здесь. Это совершенно не связано. –

+0

@FelixKling Array рассматривается как объект, 'typeof []' – Tushar

+0

@Tushar: массивы - это объекты, но здесь нет массива и, опять же, нет вызова 'Object'. –

ответ

42

Это новый ES2015 (ECMAScript особое_разрешение формально известный как ES6) computed property name syntax. Это сокращение для someObject[someKey] задания, вы знаете, от ES3/5:

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

является синтаксический сахар для:

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

Это не только ES6 – Tushar

+0

@Tushar - где еще это работает? Он бросает меня в обычную среду ES5 (Node 0.10). –

Смежные вопросы