[
и ]
- это знаки препинания, которые имеют разное значение в разных контекстах. В зависимости от того, где они появляются, они могут обозначать литерал массива:
let a = [];
или разделять имя свойства (так называемое «квадратное скобочное обозначение»), где выражение должно оцениваться для получения имени свойства:
let foo = 'log';
console[foo]('foo'); // equivalent to console.log('foo');
или определите присвоение значений массива переменным:
let [a, b, c] = [1, 2, 3]
В контексте OP они разграничивают имя вычисляемого свойства , аналогично второму примеру выше:
let x = 'foo';
let obj= {[x] : 'Foo'};
, который создает объект, как если бы:
let obj = {foo: 'Foo'};