this指向的所有情况

this指向的所有情况

情况一、
在普通的函数里面,当调用函数时,this的指向是window

代码示范

function mode(){
          console.log(this)//这里this的值是window
      } 
      mode()

在这里插入图片描述

情况二、

在构造函数里面this的指向是实例的对象

代码示范

unction Mode(){
        console.log(this)
      }
      var aa=new Mode() //new关键字,通过函数生成一个新的对象,这时的this就指向了这个对象

在这里插入图片描述

情况三、

对象中的方法,该方法被哪个对象调用了,那么方法中的this就指向该对象

代码示范

function Mode(){
        this.run=function(){
            console.log(this)
        }
      }
      var aa=new Mode()
      aa.run()

在这里插入图片描述

情况四、

定时器中的this,指向的是window

代码示范

// 定时器中的this指向
    setTimeout(function(){
        console.log(this)//这里面的this的值是window
    },500)

在这里插入图片描述

情况五、

元素绑定事件,事件触发后,执行的函数中的this,指向的是当前元素

代码示范

<button>提交</button>
    <script>
        var btn=document.querySelector('button')
        btn.addEventListener('click',function(){
            console.log(this)//这个的this指向是<button>提交</button>
        })

在这里插入图片描述

情况六、

在严格模式下,this是undefined.

代码示范

function demo() {
 'use strict';
 console.log(this); // undefined
}
demo();

在这里插入图片描述

情况七、

用call的方式调用函数

function demo() {
 console.log(this);
}
demo.call('abc'); // abc
demo.call(null); // this -> window
demo.call(undefined); // this -> window

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值