js 中关键字 this的用法

<1>  js中this 的用法? 

(key:函数是由调用的,四种情况标红可知)

(http://www.ruanyifeng.com/blog/2010/04/using_this_keyword_in_javascript.html)

this 关键字指的是函数在运行时,自动生成的内部对象,只能在函数内部使用,随着函数使用场合的变化this 的值也会发生变化,但是总原则是,this指的是调用函数的那个对象   =》范围:函数内部    对象:调用函数的那个对象

this使用的四种情况

1.直接调用函数

var x = 1;

  function test(){

    this.x = 0;

  }

  test();     //直接调用函数,this代表的是全局对象Global

alert(x); //0

                2.作为对象的方法被调用

                function test(){

    alert(this.x);

}

  var o = {};

  o.x = 1;

  o.m = test;

o.m(); // 1   由对象调用,作为对象的方法

   3.作为构造函数调用(构造函数和普通函数的区别:是否使用new 方法生成新对象)

 var x = 2;

  function test(){

    this.x = 1;

  }

  var o = new test();  //this 指代的是构造函数new的新对象

  alert(x); //2

运行结果为2,表明全局变量x的值根本没变

4.apply ,call 调用(这两函数的作用是改变函数的调用对象,第一个参数代表改变后的函数调用对象,空时默认全局对象)

var x = 0;

  function test(){

    alert(this.x);

  }

  var o={};

  o.x = 1;

  o.m = test;

  o.m.apply(); //0 this指的是全局对象。

  o.m.apply(o); //1  指代O对象

 拓展:http://www.cnblogs.com/xxcanghai/p/5189353.html

原文地址:https://www.cnblogs.com/Spring-Rain/p/5941569.html