Home >Web Front-end >JS Tutorial >Can I Use Variables as Object Property Names in JavaScript?

Can I Use Variables as Object Property Names in JavaScript?

Susan Sarandon
Susan SarandonOriginal
2024-12-25 10:05:11652browse

Can I Use Variables as Object Property Names in JavaScript?

How to Dynamically Define Object Property Names in JavaScript

JavaScript object literals are convenient for defining a collection of key-value pairs, where keys represent property names and values represent property values. However, a common question arises: can we use a variable as a key in an object literal?

The answer to this question depends on the JavaScript version. In ES5 and earlier, using a variable directly as a key in an object literal won't work. For example:

var thetop = 'top';
something.stop().animate({ thetop: 10 }, 10); // Doesn't work

This is because in ES5, object property names must be enclosed in double quotes or single quotes.

Solution for ES5 and Earlier

To use a variable as a key in ES5, you need to create an object literal and manually assign the property value using the variable name as the property key:

var aniArgs = {};
aniArgs[thetop] = 10; // Assign value to property using variable name as key
something.stop().animate(aniArgs, 10); // Pass the object literal to the animate method

ES6 Computed Property Names

ES6 introduces the concept of ComputedPropertyName, which allows the use of variables and expressions as property names inside object literals. This syntax looks like:

const obj = { [variableOrExpression]: value };

Using this syntax, you can dynamically define property names using variables, for example:

var thetop = 'top';
const obj = { [thetop]: 10 };
console.log(obj.top); // Prints 10

This syntax is supported in modern browsers and can simplify the process of defining object property names dynamically.

The above is the detailed content of Can I Use Variables as Object Property Names in JavaScript?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn