En Javascript, una clave es un símbolo

Si desea construir en tiempo de ejecución un objeto con claves y valores variables, recuerde que en Javascript, una clave es en realidad un valor de símbolo primitivo que no se evalúa.

var f1 = function(key, value) {
return {key: value};
}

var f2 = function(key, value) {
var _o = {key: value};
return _o;
}

var f3 = function(key, value) {
var _o = {};
_o
[key] = value;
return _o;
}

f1
('hi', 'hello'); // -> {key: 'hello'};
f2
('hi', 'hello'); // -> {key: 'hello'};
f3
('hi', 'hello'); // -> {'hi': 'hello'};