Что означают квадратные скобки вокруг имени свойства в литерале объекта?

Я писал в 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"
}

Для получения дополнительной информации о том, как создавать объекты, перейдите по этой ссылке

Другие вопросы по тегам