What do square brackets around a property name in an object literal mean?
I've been writing in JS for a while and have not used this form:
dist: {
files: {
[bpr + 'lib/Monster.min.js']: ['<%= concat.dist.dest %>']
}
}
}
the
[]:[]
it works, I just have not used it or seen it before.
Only recently with ES6. They are called "computed property names"
From MDN:
Starting with ECMAScript 2015, the object initializer syntax also supports computed property names. That allows you to put an expression in brackets
[]
, that will be computed as the property name.
In ES6 square bracket is part of os the object literal when using computed key pairs.
For example:-
Problem Below the string "key" times 5 makes a computed key named "key"*5, now without using square brackets this result in a syntax error
const newObject = {
"key"*5:"value"
}
The Solution The solution will be to use a square bracket before using a computed property as a key
const newObject = {
["key"*5]:"value"
}
For more reference of how to create objects check out this link