JavaScript-JS中this的指向

本文详细探讨了JavaScript中this的指向,包括隐式绑定和显式绑定的场景。隐式绑定涉及全局上下文、直接调用函数、对象方法调用、DOM事件绑定和new构造函数。箭头函数的this指向则不同,它会继承父级作用域的this。显式绑定主要通过call、apply和bind方法实现,它们允许开发者明确设置函数的上下文。此外,还讨论了这些方法在参数传递和函数执行上的差异。
摘要由CSDN通过智能技术生成

JavaScript-JS中this的指向

本文将主要总结JS中this的指向

隐式绑定的场景:

  • 全局上下文
  • 直接调用函数
  • 对象.方法的形式调用
  • DOM事件绑定(特殊)
  • new构造函数绑定
  • 箭头函数

1. 全局上下文

全局上下文默认this指向window, 严格模式下指向undefined。

2. 直接调用函数

比如:

let obj = {
  a: function() {
    console.log(this);
  }
}
let func = obj.a;
func();

这种情况是直接调用。this相当于全局上下文的情况(默认this指向window, 严格模式下指向undefined。)。

3. 对象.方法的形式调用

还是刚刚的例子,我如果这样写:

obj.a();

这就是对象.方法的情况,this指向这个对象

4. DOM事件绑定

onclick和addEventerListener中 this 默认指向绑定事件的元素。

IE比较奇异,使用attachEvent,里面的this默认指向window。

5. new+构造函数

此时构造函数中的this指向实例对象。

6. 箭头函数࿱

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值