对象中的javascript函数

对象中的javascript函数,javascript,function,Javascript,Function,我试图“把一个函数放到一个对象中”,所以我想这样做,但我到处都会出错 var someobject = { makename(1) : null, makename(2) : null, makename(3) : null, makename(4) : null }; function makename(num) { return (identifier + ' Bot' + num) } 这在任何地方都有效。然而,@pointy的解决方案更

我试图“把一个函数放到一个对象中”,所以我想这样做,但我到处都会出错

var someobject = {
    makename(1)  : null,
    makename(2)  : null,
    makename(3)  : null,
    makename(4)  : null
};

function makename(num) {
    return (identifier + ' Bot' + num)
}
这在任何地方都有效。然而,@pointy的解决方案更好

在现代(ES2015)JavaScript环境中,您可以执行以下操作:

var someobject = {
  [makename(1)]: "foo",
  [makename(2)]: "bar"
};

属性名周围的
[]
包装允许它是任意表达式。表达式求值的结果被解释为字符串并用作属性名。

是的,json键不能是函数调用的结果实际上,我认为在es6中有计算键或类似的东西。如果使用括号表示法,它们可以,这是获取动态键的唯一方法:-),这就是我要寻找的!
var someobject = {
  [makename(1)]: "foo",
  [makename(2)]: "bar"
};