触发名称以字符串形式出现的函数

0 javascript variables function autoload

我想解雇一个功能.不幸的是我不能直接调用它,因为函数的名称是作为字符串提供的.

例:

function myFunction() {
   alert('I am myFunction');
}
function anotherFunction() {
   alert('I am anotherFunction');
}

var func_name = 'myFunction';

$obj = jQuery('a');

$obj.each(function(){
   $(this).func_name(); // eval didn't help here :( 
});

显然这不起作用,因为JS期望func_name是一个有效的函数.有没有办法让myFunction()被触发而不是func_name()?谢谢.

更新:嗯,在测试了一些答案之后,我的问题描述似乎并不完整.:OI更新了代码以包含一个对象,我想要附加/运行该函数.

再次感谢!

Jan*_*nen 7

没理由使用eval.如果您的功能是全局的,请使用window[func_name]()

随着您更新的问题:

//the function $ returns an object, thus, this is changed
$(this).func_name();

//to this:
$(this)[func_name]();
Run Code Online (Sandbox Code Playgroud)