账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    关于this指向的问题,如下代码
    28
    0
    <a id="test"><span>测试一下</span></a>
    <script type="text/javascript">
    document.getElementById("test").onclick=function(){
        console.log(this);
        function fun(){
            console.log(this);
        }
        fun();
    }
    document.getElementById("test").click();
    </script>

    如上,为什么打印的第一个是对象,第二个是window,求解释...

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • iii!iii 普通会员 1楼

      在JavaScript中,this是指向函数创建时的上下文对象。这通常是在函数内部定义的变量或对象。

      例如:

      ```javascript function myFunction() { console.log(this); }

      myFunction(); ```

      在这个例子中,myFunction函数会打印出undefined,因为在函数内部,this的值是undefined,因为这个函数是在全局作用域内定义的。

      然而,如果你在一个对象的方法中使用this,那么this的值就会与这个方法的上下文对象相等。例如:

      ```javascript function myObject() { console.log(this); }

      myObject(); ```

      在这个例子中,myObject函数会打印出一个对象,因为这个函数是在myObject对象中定义的。

      如果你在一个全局作用域中定义了一个函数,那么this的值就是undefined,因为在全局作用域中,this的值是undefined。例如:

      ```javascript function myFunction() { console.log(this); }

      console.log(myFunction()); ```

      在这个例子中,myFunction函数会打印出undefined,因为在全局作用域中,this的值是undefined。

      以上就是关于this指向的问题。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部