js

1. 在标签内部调用事件默认都是window调用的!

2. 为什么 函数fn1()必须写在window.onload = function(){} 外面才有效果!

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<input id="btn1" type="button" value="按钮1"/>
<input type="button" id="btn2" value="按钮2" onclick="fn1();"/>
<!--写在行内的事件默认对象都是window-->
<script>
    window.onload = function () {
        var oBtn1 = document.getElementById('btn1')
        var oBtn2 = document.getElementById('btn2')
        oBtn1.onclick = function () {
            alert(this);//此处this指的是oBtn1
            fn1(); // 等价于 fn1() === window.fn1(); 所以弹出的是window
        };
    }
    function fn1() {
        alert(this);
    }
</script>
</body>
</html>

  

原文地址:https://www.cnblogs.com/bravolove/p/5978933.html