如何从字符串触发函数?
可能重复:
当我将其名称作为字符串时如何执行JavaScript函数
我有这个功能
function myfunc() {
alert('it worked!');
}
和这个变量是一个字符串
var callback = 'myfunc';
我如何触发该字符串的功能?
假设该函数是全局声明的,它将被包含在window
对象中,所以你可以使用window[callback]()
来调用它。
全局声明的函数存储在window
对象中,因此您可以使用window.myfunc
引用myfunc
。 与JavaScript对象的其他属性一样,由于您的callback
变量中包含字符串"myfunc"
,因此您可以使用大括号语法而不是点符号,因为它可能是window["myfunc"]
,您可以直接使用它。 一旦你有了参考,你可以把它作为一个函数给出window[callback]()
。
如果你在浏览器中这样做,试试这个: window[callback]()
也可以使用eval - 像eval(callback + '()')
- 但效率非常低, 不推荐使用。
另外,您可能需要考虑将函数本身而不是其名称赋给回调变量:
function myfunc() {...}
var callback = myfunc
...
callback() # trigger callback
这在很多情况下都可以工作,但是当然,有时候你只需要把它作为一个字符串来传递。
如果这是在浏览器上运行的代码,那么myfun
是window
对象的一种方法。 你可以像这样调用方法:
window[callback]();
链接地址: http://www.djcxy.com/p/94831.html