2015-08-15 124 views
0

我有一个函数名称=“测试”。如何在知道函数名称的类中调用函数?

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

我猜我可以使用eval()函数,但那是行不通的?

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

+3

你能提供一个代码示例吗? – emd

+0

简单''className ['methodeName']()' – vinayakj

+0

call like:this [name](); – venkat7668

回答

1

使用括号表示法。

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

name = "test"; 
this[name](/* args */); 
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我上面使用。

0

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

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