You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何执行Map对象中作为值存储的函数

解决方案

你通过myMap.get("myKey")获取到的返回值本身就是完整的函数对象,不需要额外用new Function做二次包装,直接加括号传入参数即可调用。

正确调用代码示例

const myMap = new Map();

myMap.set("myKey", function(argument) {
    console.log(argument);
});

// 取出存储的函数
const targetFn = myMap.get("myKey");
// 直接调用,传入所需参数
targetFn("测试输出内容");

上述代码运行后,控制台会打印测试输出内容。

可选兼容处理

如果无法确定对应key是否存在、或存储的value一定是函数,可以提前做类型判断,避免调用报错:

const targetFn = myMap.get("myKey");
if (typeof targetFn === "function") {
  targetFn("测试输出内容");
}

原错误写法原因说明

new Function构造函数的作用是接收字符串格式的函数体代码来生成新函数,你传入的是已经实例化完成的函数对象,不符合该构造函数的入参要求,因此会抛出语法错误。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 20:57:00