简体   繁体   中英

How to use dynamic key name in object during object construction?

I want to use a dynamic key name during the creation of the object.

var myKey = 'text';
var myObj = {
    [myKey]: 'Hello'  // not working
};
alert(myObj.text);

I know you can do it on the next line after the object is created myObj[key] = 'someValue' , but I was curious about doing it when you're creating the object.

There's a plethora of similar questions about it, but they all do it after the object has been created using the [] notation.

Is it really worth it to save one line? I guess if you really want to be hacky, you could do this:

var myKey = 'text';
var myObj = JSON.parse( '{"' + myKey + '": "Hello"}' );
alert(myObj.text);

I would actually just declare the object and set the key

var myKey = 'text';
var myObj = {};
myObj[myKey] = "Hello";
alert(myObj.text);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM