You need to enable JavaScript to run this app. 如何根据传入参数动态调用对应函数?loadFnc非函数报错怎么解决
优惠活动
大模型
产品
解决方案
定价
更多

如何根据传入参数动态调用对应函数?loadFnc非函数报错怎么解决

问题原因

loadFncName函数返回的是字符串格式的函数名称,而非可执行的函数引用,你直接对字符串执行调用操作,就会触发loadFnc is not a function的类型错误。

如果之前类似的写法可以正常运行,说明此前你的映射逻辑是直接返回函数本体,或者多了一步从字符串到对应函数的转换步骤,当前代码缺少该环节。

修复方案

有两种常用的修复方式,可根据你的实际代码场景选择:

  • 修改loadFncName内的映射逻辑,直接存储函数引用而非字符串
function loadFncName(scheduleValue){
  var navigation = {
    "01" : upComingAlt, // 直接写函数名,不需要加引号
    "001" : upComingE3D,
    custom : customWeek
  }
  return navigation[scheduleValue];
}
  • 如果你的函数是挂载在全局作用域下的,也可以在拿到函数名字符串后,从全局对象中取对应的函数引用
// 把原来的 var loadFnc = loadFncName(scheduleValue); 替换为下面这行
var loadFnc = window[loadFncName(scheduleValue)];

内容的提问来源于stack exchange,提问作者Navneet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 07:54:00