在JavaScript中this表示:谁调用当前函数this就指向谁,不知道调用者时this指向window

JavaScript是由对象组成的,一切皆为对象,万物皆为对象。this是一个动态的对象,根据调用的对象不同而发生变化,当然也可以使用call、apply修改this指向的对象。它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用

1.0、猜猜答案

代码如下:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>JavaScript this</title>
    </head>
    <body>
        <h2>JavaScript this</h2>
        <input type="button" value="按钮A" id="btnA"/>
        <input type="button" value="按钮B" id="btnB" onclick="sayHello()"/>
        <script type="text/javascript">
            function sayHello(){
                alert("Hello Button!");
                console.log(this);
            };
            
            document.getElementById("btnA").onclick=sayHello;
            
        </script>
    </body>
</html>

请问输出到控制台的结果是什么?相同吗?输出两个什么对象?

答案:

<input type="button" value="按钮A" id="btnA"/>
Window
View Code

相关文章: