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