web前端必做笔记之一:如何理解this关键字

本文详细探讨了JavaScript中的this关键字在不同环境下的指向,包括全局环境、全局函数、对象方法、DOM事件、构造函数以及箭头函数中的行为。通过实例解析,帮助读者掌握this的关键用法,并特别强调了箭头函数中this的特殊性。
摘要由CSDN通过智能技术生成

web前端必做笔记之一:如何理解this关键字

1.全局环境输出this,指向谁?

<script>
      //this
      //   1.直接输出this指向全局对象window
   console.log(this);   //window
</script>

2.全局函数输出this,指向谁?

      //为啥这里的this指向Window
      //因为全局函数其实是window(全局对象)的方法
      function  fun(){
            console.log(this);
      }
      fun();

3.对象的方法输出this,指向谁?

     //this放在方法中,this指向调用这个方法的对象
      let  cat = {
              name:"喵喵",
              sayName(){
                     console.log("我是" + this.name);  //我是喵喵
              }
      }

4.DOM事件输出this,指向谁?

<button>按钮</button>
<script>
      //DOM对象事件中的this,指向的是DOM对象
       const  btn  = document.querySelector("button");
       btnl.onclick = function(){
              console.log(this);
       }
</script>

5.构造函数中的this,指向谁?

       //将构造函数使用的this指向创建出来的对象
      //构造函数:用来创建对象
       function  F(){
             this.name = "小明"
             
       }
       let f = new F();
       console.log(f);  //F{name:"小明"}

6.new关键字做了什么?
new会创建对象,
7.箭头函数中的this,指向谁?

<script>
      //箭头函数中this 指向谁
      //关于箭头函数有很多中说法
      // 1. 普通函数,谁调用指向谁,箭头函数,在哪里定义指向谁
      // 2. 箭头函数外指向谁就指向谁
      // 3. 箭头函数中没有this
      let  cat = {
              name:"喵喵",
              sayName(){
                    console.log(this) //指向喵喵

                    //不适用箭头函数情况下
                    setTimeout(function(){
                        console.log(this);  //指向window
                    },1000);

                    //使用了箭头函数的情况下
                    setTimeout(()=>{
                         console.log(this) //指向喵喵
                    },1000)
                   
              }
      }

      cat.sayName();
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值