js中的this指向

本文详细阐述了JavaScript中this关键字在不同场景下的指向规则,包括对象方法中指向调用者,构造函数中指向新创建的对象,事件处理函数中指向事件触发元素,普通全局函数中指向window,在箭头函数中则继承上下文的this。
摘要由CSDN通过智能技术生成

1.对象方法中的this:被谁调用就指向谁。

代码如下:

let obj={
       a:1,
       say(){
          console.log(this);
        }
    }
// 被obj调用,指向obj
obj.say();

运行结果: 

 2.构造函数中的this:指向被new时创建的对象。

代码如下:

function Dog(name) {
     this.name = name;
     console.log(this);
}
let d1 = new Dog('小黑');
console.log(d1);

运行结果:

 3.事件处理函数中的this:给谁添加事件就指向谁。

代码如下:

document.onclick=function(){
     console.log(this); // 指向document
}

运行结果:

 4.普通全局函数中的this:指向window。

代码如下:

function Person(){
      console.log(this);
}
Person();

运行结果:

 5.箭头函数中的this:没有自身的this,与上下文一致。

代码如下:

 document.onclick=function(){
      // 指向document
      console.log(this);
      // 没有自己的this,指向document
      setTimeout(() => {
           console.log(this);
      }, 1000);
}

运行结果:

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值