JavaScript 中的 this 关键字

    this是Javascript语言的一个关键字。它表明函数运行时,自动生成一个内部对象,只能在函数内部使用。this所指的就是直至包含this指针的上层对象。app

   

    普通函数  ---------this-全局对象windowide

    对象的方法---------this-该对象函数

    构造函数  ---------this-新构造的对象this


    经过call和apply能够从新定义函数的执行环境,即this的指向。随着函数使用场合的不一样,this的值会发生变化。可是有一个总的原则,那就是this指的是,调用函数的那个对象。指针


  1. 全局性调用,此时this表明全局对象Global对象

   function test(){
    this.x = 1;
    alert(this.x);
  }
  test(); // 1
  ------------------------------------------------
  var x = 1;
  function test(){
    alert(this.x);
  }
  test(); // 1

2. 做为对象方法的调用,这时this就指这个上级对象。ip

    function test(){
    alert(this.x);
  }
  var o = {};
  o.x = 1;
  o.m = test;
  o.m(); // 1

3.做为构造函数调用,这时,this就指这个新对象。ci

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

4.call,apply调用it

    apply(),call()是函数对象的一个方法,做用是改变函数的调用对象,第一个参数就表示改变后的调用这个函数的对象。所以,this指的就是这第一个参数。io

    

    var x = 0;
  function test(){
    alert(this.x);
  }
  var o={};
  o.x = 1;
  o.m = test;
  o.m.apply(); //0
    o.m.apply(o); //1

  apply()的参数为空时,默认调用全局对象。所以,这时的运行结果为0,证实this指的是全局对象。

相关文章
相关标签/搜索