 
                        在学习过程中,看到书上的例子中 onload 事件一次只能保存对一个函数的引用,它会自动用后面的函数覆盖前面的函数。
在编写列子的过程中,如果写法为:
    <script>
            function one(){
                alert("one");
            }
            function two(){
                alert("two");
            }
            window.onload = one;
            window.onload = two;
    </script>显示的结果确实为只弹出了two,而one被覆盖
而如果改写为
            window.onload = one();
            window.onload = two();则显示两个函数都可以弹出,依次为one,two
书中所说的引用是否就是one,与one()这两种写法的区别,应该如何理解呢?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
因为这样写,加载到这一句就直接执行了,并不会等到
onload完成。onload 事件一次只能保存对一个函数的引用,而引用的目的是要调用,调用之后,这个函数就会被释放,成为垃圾被回收,而 window.onload = one();window.onload = two();这样是onload两次事件,引用跟调用写在一起,分别执行。
window.onload 是通过赋值方式定义的事件,后一次赋值会覆盖前一次赋值。
window本质上还是一个 Object,和下边的代码没有区别:
如果需要定义多个 window.onload,而又想使用原生代码实现,有下面的代码就可以了。