[英]how do I call a function within a class knowing the function name?
我有一个函数名称=“ test”。
如何在知道函数名称的类中调用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]()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.