如何在知道函数名称的类中调用函数?

时间:2015-08-15 19:36:14

标签: javascript

我有一个功能名称=" test"。

如何在知道函数名称的类中调用this.test()函数?

我猜我可以使用eval()函数,但这不起作用?

如何仅使用javascript中的字符串名称调用类函数?

3 个答案:

答案 0 :(得分:1)

使用括号表示法。

this["test"](/* args */);

name = "test";
this[name](/* args */);

答案 1 :(得分:1)

要将函数作为普通函数调用而不将对象作为上下文,只需获取对它的引用并调用它。例如:

var name = "test";
var f = obj[name];
f(1, 2);

要将其作为对象的方法调用,请获取对该函数的引用,然后使用call方法调用它来设置上下文。例如:

var name = "test";
var f = obj[name];
f.call(obj, 1, 2);

如果您在对象的方法内,则可以使用this而不是我上面使用的对象引用obj

答案 2 :(得分:0)

为了让您的代码更安全,我建议您检查它是否为函数。

var a='functionName'
if (typeof this[a]!='function')
  alert('This is not a function')
else
  this[a]()