Что означают квадратные скобки вокруг имени свойства в литерале объекта?
Я писал в JS некоторое время и не использовал эту форму:
dist: {
files: {
[bpr + 'lib/Monster.min.js']: ['<%= concat.dist.dest %>']
}
}
}
[]:[]
это работает, я просто не использовал это или видел это прежде.
2 ответа
Только недавно с ES6. Они называются "именами вычисляемых свойств"
От MDN:
Начиная с ECMAScript 2015, синтаксис инициализатора объекта также поддерживает вычисляемые имена свойств. Это позволяет поместить выражение в скобки
[]
, это будет вычислено как имя свойства.
В ES6 квадратная скобка является частью литерала объекта при использовании вычисленных пар ключей.
Например:-
Проблема Ниже строки «ключ», умноженной на 5, получается вычисленный ключ с именем «ключ» * 5, теперь без использования квадратных скобок это приводит к синтаксической ошибке.
const newObject = {
"key"*5:"value"
}
Решение Решением будет использование квадратной скобки перед использованием вычисляемого свойства в качестве ключа.
const newObject = {
["key"*5]:"value"
}
Для получения дополнительной информации о том, как создавать объекты, перейдите по этой ссылке