JS中如何通过函数名来调用函数?

JavaScript015

JS中如何通过函数名来调用函数?,第1张

str = "func_abc"\x0d\x0a//调用func_abc\x0d\x0aeval(str)\x0d\x0a\x0d\x0a如果要传参数,比如\x0d\x0aeval( str + "( '字符串参数', 123 )" )\x0d\x0a也可以\x0d\x0aeval( "var _function = " + str )\x0d\x0a_function( "字符串参数", 123 )\x0d\x0a没有参数就\x0d\x0a_function()

str = "func_abc"\x0d\x0a//调用func_abc\x0d\x0aeval(str)\x0d\x0a\x0d\x0a如果要传参数,比如\x0d\x0aeval( str + "( '字符串参数', 123 )" )\x0d\x0a也可以\x0d\x0aeval( "var _function = " + str )\x0d\x0a_function( "字符串参数", 123 )\x0d\x0a没有参数就\x0d\x0a_function()

比如我现在有一个字符串str = "func_abc",func_abc是一个函数名,我现在知道str如何调用str这个字符串表示的函数.思路:1、用eval函数,字符串转换为命令行执行都可以通过eval函数。2、如果函数不多,可以通过if等方式进行判断,执行不同的分支。代码示例:function func_abc(){alert('a')}var str = "func_abc"eval(str+"()")//执行func_abc()函数将其用到实际项目中:<!DOCTYPE html><html><head><meta charset="UTF-8"><title>将字符串作为函数名调用函数</title></head><body><span>指标:</span><select id="zhibiao"><option selected="" value="总体">总体</option><option value="queryManagementVolume">办理量</option><option value="queryTimeConsuming">平均耗时</option><option value="queryOvertimePercent">超时占比</option></select></body><script src="../js/jquery.js"></script><script>$(document).on("change",'select#zhibiao',function(){ var fn=$(this).val() /* fn()*/ eval(fn+"()")})function queryManagementVolume(){ console.log("查询办理量")}function queryTimeConsuming(){ console.log("查询平均耗时")}function queryOvertimePercent(){ console.log("查询超时占比")}</script></html>