Часто при работе с JavaScript может возникнуть ситуация, когда требуется установить ключ объекта по значению, хранящемуся в переменной. Например, рассмотрим следующий код:
var key = "myKey"; var myObject = { key: "myValue" };
В этом случае создается объект myObject
, у которого ключ называется key
, а не myKey
, как было задумано. Это происходит потому что в JavaScript ключи объектов, определенные в фигурных скобках, трактуются как литералы, а не как переменные.
Однако, есть несколько способов обойти эту проблему.
Использование скобочной нотации
Первый способ — использование скобочной нотации. В этом случае сначала создается объект, а затем для него устанавливается ключ с помощью переменной:
var key = "myKey"; var myObject = {}; myObject[key] = "myValue";
Теперь объект myObject
имеет ключ myKey
, как и было задумано.
Использование вычисляемых свойств
Второй способ заключается в использовании вычисляемых свойств (computed property names), которые были введены в ECMAScript 2015 (ES6). В этом случае ключ объекта определяется в квадратных скобках:
var key = "myKey"; var myObject = { [key]: "myValue" };
В результате получаем объект myObject
с ключом myKey
.
Итог
Таким образом, при работе с объектами в JavaScript важно помнить о различиях между использованием переменных и литералов в качестве ключей. Используя скобочную нотацию или вычисляемые свойства, можно установить ключ объекта с помощью переменной.
Добавить комментарий