首页 > 解决方案 > javascript 在 window.addEventListener 中使用 window["my_func"]()

问题描述

好的,我已经寻找解决方案但失败了,如果我错过了这里的帖子,请指出我。

问题:我知道使用 eval 将字符串转换为函数被认为是不好的做法,例如

eval("my_func"());

从我发现正确的方法是使用窗口对象,例如

window["my_func"]();

这绝对可以正常工作,除非我在窗口侦听器中需要它,例如

window.addEventListener("load", ()=>{
  function my_func(){
    alert("hi");
  }
  window["my_func"]();
});

它给出了“未捕获的类型错误:window.my_func 不是函数”的错误

我尝试使用“this”关键字而不是 window 但没有乐趣,我尝试不使用箭头函数没有乐趣,我仍然可以使用 eval 但这不是最佳实践,不知道该去哪里。

有任何想法吗?

干杯

标签: javascriptdomaddeventlistener

解决方案


推荐阅读