这里的问题 - 我知道名字的功能(这功能已经加载形式的外部脚本),但我没有,我打电话给一个实际的函数对象无济于事。通常我会打电话的eval(函数名+“(ARG1,ARG2)”),但对我来说,我需要传递一个对象给它,而不是一个字符串。 简单的例子:

var div = document.getElementById('myDiv')
var func = "function_name" -- this function expects a DOM element passed, not id

我如何执行此功能?

谢谢! 安德烈

有帮助吗?

解决方案

您应该能够从顶层window得到函数对象。 E.g。

var name = "function_name";
var func = window[name];
func( blah );

其他提示

从不使用eval,it's恶(只能看到一个字母的差别) 你可以简单地做:

var div = document.getElementById('myDiv');
var result = window[function_name](div);

,因为函数是在JavaScript第一类对象,以便你可以与任何其它变量可以存取权限他们这是可能的。请注意,这也将为那些希望字符串或任何作为放慢参数职能的工作:

var result = window[another_function_name]("string1", [1, "an array"]);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top