0

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

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

来自字符串“sampleCallback()”?

我有一个像这样的多维数组:

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

并且想将回调字符串传递给它,以便我可以从读取数组的位置运行它。

4

3 回答 3

4

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

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

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

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

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

于 2012-05-18T09:49:46.663 回答
0

You can call the javascript function using window object:

var functionResult = window[myFunctionName];
于 2012-05-18T09:57:57.460 回答
0

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

hintSlidesArray[0][2].callback.call(this)
于 2012-05-18T09:49:13.843 回答