window.onload绑定函数仅第一个return的函数执行,如何让两个函数都运行?
window.onload 绑定多函数执行问题修复方案
问题根源
你写的代码无法同时执行两个函数的核心原因是:JavaScript 函数执行过程中,只要遇到第一个 return 语句就会立即终止当前函数的执行流程,后续所有代码都不会被触发,因此排在第一个 return 之后的 Func2() 永远不会运行。
修复方案
方案1:直接调用两个函数(适配原有写法最小改动)
去掉不需要的return语句,直接执行两个函数即可。如果需要拿到两个函数的返回值,可以定义变量存储:
window.onload = function myFunc(){ // 若不需要返回值直接调用即可 Func1(); Func2(); // 若需要使用两个函数的返回值,可以按下面写法存储 // const func1Result = Func1(); // const func2Result = Func2(); // 有需要时也可以统一返回结果 // return { func1Result, func2Result } }
方案2:使用addEventListener绑定事件(更灵活的可扩展写法)
如果后续还可能新增页面加载完成后需要执行的函数,更推荐用事件监听的方式绑定,不会覆盖之前已经绑定的load事件回调:
// 分别绑定两个函数到load事件 window.addEventListener('load', Func1) window.addEventListener('load', Func2)
这种写法不需要把所有函数都封装在同一个回调函数里,新增回调时直接新增绑定语句即可。
内容的提问来源于stack exchange,提问作者M0--
相关产品推荐
相关产品推荐

