this指向

this指向一直对我来说是比较头疼的问题,时不时会在这个上面踩坑,每次都要查各种资料然后才找到问题,每次找又比较麻烦,所以今天我打算自己整理一下 关于this指向 的问题。

首先,普通函数,this的概念是:this是JavaScript的一个关键字,他是指函数执行过程中,自动生成的一个内部对象,是指当前的对象,只在当前函数内部使用。(this对象是在运行时基于函数的执行环境绑定的:在全局函数中,this指向的是window;当函数被作为某个对象的方法调用时,this就等于那个对象)

this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最终指向的是那个调用它的对象。

1. 普通函数的调用

在非严格模式下的函数作用域 中,this 指向的是全局对window
在这里插入图片描述

2. 在构造函数中 this 的调用

此时 this 指向 实例对象

在这里插入图片描述

3. 对象方法的调用

此时 this 指向 该方法所属的对象
在这里插入图片描述

4. 通过事件绑定的方法

此时 this 指向 绑定事件的对象
在这里插入图片描述

5. 定时器函数

this 指向 window
在这里插入图片描述

6. 箭头函数的 this

箭头函数的this定义:箭头函数的this是在定义函数时绑定的**

(所谓的定义时候绑定,就是this是继承自父执行上下文中的this,不是在执行过程中绑定的。)

简单的说,函数在定义时,this就继承了定义函数的对象。**

箭头函数中,this指向的固定化,并不是因为箭头函数内部有绑定this的机制,实际原因是箭头函数根本没有自己的this,导致内部的this就是外层代码块的this。正是因为它没有this,所以也就不能用作构造函数。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值