JavaScript中如何通过字符串动态调用对象内的对应函数
解决方案
你可以直接用JS的方括号属性访问语法实现动态属性读取,完全不需要写大量if/else判断。核心逻辑是把拼接好的属性名字符串放在方括号里,就能访问到对应的函数,之后直接调用即可。
实现代码
const category = 'Chefs'; // 注意:这里把你的变量名从new改成了newObj,因为new是JS关键字,直接用作变量名会触发语法错误 const targetFunc = newObj[`dataFunc_${category}`]; // 调用前加一层判断,避免属性不存在时报错 if (typeof targetFunc === 'function') { targetFunc(); }
拓展说明
- 这种写法支持任意数量的
dataFunc_前缀函数扩展,后续新增dataFunc_xxx类型的方法时,只需要给category赋值为对应xxx的值即可,不需要修改调用逻辑 - 调用前的类型判断可以避免category取值非法时,访问到非函数值调用报错的问题
内容的提问来源于stack exchange,提问作者SDB_1998
相关产品推荐
相关产品推荐

