ES6では、このようにすることができます。
var key = "name";
var person = {[key]:"John"}; // same as var person = {"name" : "John"}
console.log(person); // should print Object { name="John"}
var key = "name";
var person = {[key]:"John"};
console.log(person); // should print Object { name="John"}
計算されたプロパティ名と呼ばれ、角かっこ表記(角かっこ)を使用して実装されます[]
例:{ [variableName] : someValue }
ECMAScript 2015以降、オブジェクト初期化構文は計算されたプロパティ名もサポートします。これにより、式を角かっこ[]で囲むことができ、プロパティ名として計算および使用されます。
ES5の場合は、次のようなものを試してください
var yourObject = {};
yourObject[yourKey] = "yourValue";
console.log(yourObject );
例:
var person = {};
var key = "name";
person[key] /* this is same as person.name */ = "John";
console.log(person); // should print Object { name="John"}
var person = {};
var key = "name";
person[key] /* this is same as person.name */ = "John";
console.log(person); // should print Object { name="John"}