第一天的需求写了一个window.onload ,可以正常执行,第二天加了一个类似的需求,为了分开各个功能,我copy了前一天的代码,完成了功能,没有进行测试,直接上线,导致原来的代码无法运行,就像下面的代码一样
<script> // 第一天写的代码 window.onload = function () { console.log("window.onload1"); }; // 第二天加的需求 window.onload = function () { console.log("window.onload2"); }; </script>
控制台只能打印
window.onload2
两次赋值window.onload ,第一次的值被第二次的值给覆盖了,所以第一个函数并没有执行
正确的写法应该是
<script> function func1() { console.log("window.onload1"); } function func2() { console.log("window.onload2"); } // 只能有一个`window.onload` window.onload = function () { func1(); func2(); }; </script>
可以得到期望的输出
window.onload1 window.onload2