通过变量字符串定义对象

时间:2012-01-15 13:46:05

标签: javascript

很难解释..我基本上想要做以下事情:

var doWhat = "speak";

var speak = {
    hello: function() { alert: "Hello!"; }
};

// Won't work
doWhat.hello();

这是一个不好的例子,但你应该能够理解我的意思。 有可能吗?

3 个答案:

答案 0 :(得分:1)

您可以使用eval(doWhat).hello();。这样,doWhat的内容将被评估为对象引用。

答案 1 :(得分:1)

您可以执行类似

的操作
var doWhat = {}, str = "speak";

doWhat[str] = {
    hello : function() {}
}; 

doWhat[str].hello();

答案 2 :(得分:0)

jsName = 'PageIndexController';

//ST1
eval("if( typeof jsName === 'undefined')alert(111);");

//ST1
eval("if( typeof " + jsName + " === 'undefined')alert(222);");

//ST1 not work
//ST2 work and the output: 222;

//there are two different way using eval, we will get 2 different outcome.