Javascript从stringdynamic调用对象方法

我可以dynamic调用具有方法名称的对象方法作为string吗? 我会想像这样:

var FooClass = function() { this.smile = function() {}; } var method = "smile"; var foo = new FooClass(); // I want to run smile on the foo instance. foo.{mysterious code}(); // being executed as foo.smile(); 

如果该属性的名称存储在一个variables中,使用[]

 foo[method](); 

对象的属性可以通过数组表示法来访问:

 var method = "smile"; foo[method](); // will execute the method "smile" 

方法可以调用eval eval("foo." + method + "()"); 可能不是很好的方法。