我有一个函数名称=“测试”。如何在知道函数名称的类中调用函数?
如何在知道函数名称的类中调用this.test()函数?
我猜我可以使用eval()函数,但那是行不通的?
如何在javascript中仅使用字符串名称来调用类函数?
我有一个函数名称=“测试”。如何在知道函数名称的类中调用函数?
如何在知道函数名称的类中调用this.test()函数?
我猜我可以使用eval()函数,但那是行不通的?
如何在javascript中仅使用字符串名称来调用类函数?
使用括号表示法。
this["test"](/* args */);
或
name = "test";
this[name](/* args */);
调用的函数,就像没有对象上下文中的普通功能,只需获得对它的引用,并调用它。例如:
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
我上面使用。
为了让您的代码更加安全,我建议您检查它是否为函数。
var a='functionName'
if (typeof this[a]!='function')
alert('This is not a function')
else
this[a]()
你能提供一个代码示例吗? – emd
简单''className ['methodeName']()' – vinayakj
call like:this [name](); – venkat7668