1. ホーム
  2. javascript

[解決済み] プロパティ名の変数を使用してオブジェクトを作成する [重複].

2022-11-28 17:35:30

質問

オブジェクト生成のためのオブジェクトリテラルプロパティで変数名を使用することは全く可能でしょうか?

function createJSON (propertyName){
    return { propertyName : "Value"};
}

var myObject = createJSON("myProperty");

console.log(myObject.propertyName);  // Prints "value"
console.log(myObject.myProperty);  // This property does not exist

どのように解決するのですか?

プロパティの名前に変数を使いたい場合は 計算されたプロパティ名 . 変数名は角括弧で囲んでください。

var foo = "bar";
var ob  = { [foo]: "something" }; // ob.bar === "something"

Internet Explorer をサポートしたい場合は、ES5 のアプローチを使用する必要があります(上記のようなモダンな構文を記述して バベル ):

最初にオブジェクトを作成し、次にプロパティを 角括弧表記 .

var foo = "bar";
var ob  = {};
ob[foo] = "something"; // === ob.bar = "something"

もし、プログラムでJSONを作成したい場合は、オブジェクトをJSON形式に準拠した文字列にシリアライズする必要があります。 JSON.stringify メソッド .