如何从字符串中的方法名称调用javascript函数?

时间:2012-05-18 09:47:20

标签: javascript jquery string function

有人知道如何调用javascript函数,例如

function sampleCallback() {
      alert("hello");
}

来自字符串“sampleCallback()”?

我有一个多维数组,如下所示:

hintSlidesArray = [
                    [{ "element": "noelement" }, { "hintMessage": "Welcome"}, "callback": "sampleCallback" }],
                  ];

并希望将回调字符串传递给它,以便我可以从读取数组的地方运行它。

3 个答案:

答案 0 :(得分:4)

任何全局变量(包括函数)都是全局对象的属性。在浏览器环境中,这是window。因此,您可以使用数组下标语法来访问您要查找的属性:

window[hintSlidesArray[0][2].callback]();

如果您需要为this指定值,可以使用.call().apply()

window[hintSlidesArray[0][2].callback].call(value_for_this);

但是,您应该考虑在对象中存储函数而不是其名称。如果在创建对象时已在当前作用域(或全局作用域)中定义了该函数,则这与从函数名中删除引号一样简单。

答案 1 :(得分:0)

您可以使用callapply方法。例如:

hintSlidesArray[0][2].callback.call(this)

答案 2 :(得分:0)

您可以使用window object调用javascript函数:

var functionResult = window[myFunctionName];