functionaaa(){console.log('1')}varfnName='aaa'[fnName]()//这样会报错想以字符串作为函数名称,有办法吗?
2 回答
犯罪嫌疑人X
TA贡献2080条经验 获得超4个赞
方括号就是要字符串,但这是不能省略调用对象的,你定义的函数在浏览器中是在window对象下的,所以应该window[fnName]()这样调用上面回答很仔细了,在没有window对象的情况下,定义对象是最稳妥的。想删了答案,结果要扣分,那算了,我贴一篇文章吧,也算没白回答,更具有普适性的方式(支持字符串点操作,对字符串错误更为友好,不过有时undefined不如直接报错):Howtoexecuteafunctionfromitsstringname(executefunctionbyname)inJavaScript|OurCodeWorld
添加回答
举报
0/150
提交
取消