Javascript 从字符串动态调用对象方法

2022-08-30 05:29:32

是否可以动态调用将方法名称作为字符串的对象方法?我会想象它是这样的:

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();

答案 1

如果属性的名称存储在变量中,则使用[]

foo[method]();

答案 2

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

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