我可以使用字符串作为JavaScript对象中的键吗?
var method,
obj;
method = function () {
return "foo";
};
// works
obj = {
'foo': 'bar'
};
// does not work
obj = {
method(): 'bar'
};
答案 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()
的形式突然发生,有时会按预期行事。