第一天的需求写了一个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