繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM