JavaScript中的this指向问题及其解析

this在js中的指向有很多种,本文整合了其中比较常见的几种this指向的问题。

this在不同环境中运行时运行的结果可能不同

在全局作用域中时this指向window
在普通函数中时this指向函数调用函数的元素
在箭头函数中时本身没有this指向,指向取决于函数环境(在全局作用域时为window,在函数中时指向此函数的调用者)
事件绑定中的this 指向的是这个事件的事件源
定时器中的this定时器采用的是回调函数,回调函数指向的是window,所以不管这个定时器的运行环境如果定时器始终指向window
构造函数中的this构造函数配合new使用,new关键字的this指向的是实例化对象,所以构造函数中的this指向的是实例化对象

小结,this在js中的指向取决于其运行环境...

这其中也包括了定时器中的this, 定时器本质是一个回调函数经过延时后执行,回调函数是一个宏任务,js主线程在运行时会将定时器交给运行环境执行,优先执行速度较快的同步任务,所以this指向的是js运行环境window。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值