2017.3.13笔记 this指向

本文深入讲解JavaScript中this关键字的不同应用场景,包括对象方法调用、构造函数、DOM事件处理及普通函数调用时this的指向问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

this指向是js中的要点,要掌握好。一句话,函数执行时,this指向调用者,若没有调用者,具有全局性,指向window

this一般分为如下情况:

   1 obj.fn() 调用时 指向obj 例如
            var obj = {

           name:"Mike",

           sayName : function(){

              alert(this.name)

           }
                }

      obj.sayName();  this指向调用者obj

      像document.getElementById("tel"),该方法的实现中利用了this(指向document),该方法是在document上找id等于tel的元素。

      如果采取 var getId = document.getElementById;

              getId("tel")  

      此时的this会指向window,不是指向document,然鹅在window上是不能用改取id的方式的(window是要把tel当做变量的window.tel)。

  2   构造函数的this

    如下 function Animal(name){

        this.name = name;

      }    //this 是 new Animal构造函数的时候,指向构造出来的实例。

      Animal.prototype.bite = function(){

        alert(this.name);

      }  

       var cat = new Animal("cat")

      cat.bite(); 指向调用者cat

  3

     var demo = document.getElementById("demo");

   demo.onclick = function(){
      alert(this.id);

   } 

   实际情况是点击demo的时候,触发了demo的click事件执行即(demo.click()) ,很显然,this指向demo 

  可以发现,1 ,2, 3  实际是一类情况

  4

   var demo = document.getElementById("demo");

   demo.onclick = function(){
      alert(this.id); // this 指向demo

      var fn = function(){

        alert(this.id); // 指向window

      }

      fn();

   } 

  此示例中普通函数fn(没有调用者的函数)具有全局性,执行时this指向window

  

转载于:https://www.cnblogs.com/FineDay/articles/6547019.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值