首页 > 技术文章 > This的用法

JodNiki 2019-01-27 21:42 原文

1、在一般函数中this指代全局对象   

     var x = 1;
     function AA() {
      this.x = 2;
      alert(this.x);
     }
     AA();

2、作为方法的调用,this指代上级对象

     function  TEST(){

      alert(this.x);

    }

    var  o={};

    o.x=1;

    o.m=TEST();

    o.m();

3、作为构造函数的调用 ,对象中的局部变量

    var x = 2;
    function test() {
     this.x = 1;
    }
    var t = new test();
    alert(t.x);

4、apply,call改变函数的调用对象

     

var x = 0;
  function test(){
    alert(this.x);
  }
  var o={};
  o.x = 1;
  o.m = test;
  o.m.apply(); //0
//apply()的参数为空时,默认调用全局对象。因此,这时的运行结果为0,证明this指的是全局对象。如果把最后一行代码修改为

  o.m.apply(o); //1

 

推荐阅读