我可以使用字符串作为JavaScript对象中的键吗?

时间:2014-11-19 00:01:44

标签: javascript

我可以使用字符串作为JavaScript对象中的键吗?

var method,
    obj;

method = function () {
  return "foo";
};

// works
obj = {
  'foo': 'bar'
};

// does not work
obj = {
  method(): 'bar'
};

3 个答案:

答案 0 :(得分:3)

您可以在javascript中使用方括号语法。 但是在声明对象文字时无法完成此操作。您必须执行以下操作。

obj = {}; 
obj[method()] = "bar";

答案 1 :(得分:1)

如果先创建一个空对象, 然后调用该方法,就好像它是关键, 它会按照你想要的方式分配它。

var method = function() {
    return 'bar';
};

var obj = {};

obj[method()] = 'bar';

答案 2 :(得分:0)

不那样。

你可以这样做:

function doStuff() {
  return "foo";
};

var obj = {}
  ;

obj[doStuff()] = 'bar';

关于方法和下标的主题......

这似乎有用,但这是一个坏主意,它不会影响您的想法:

var obj = {}
  ;

obj[doStuff] = 'bar';

doStuff会以doStuff.toString()的形式突然发生,有时会按预期行事。