首页 > 代码库 > Js中的this关键字

Js中的this关键字

this关键字

每个方法都包含两个内部属性,其中一个就是this。

  js中,this引用的是函数据以执行操作的对象,也就是函数在执行时所处的作用域(通俗:就是哪个对象.出了这个函数,那么函数里的this就代表哪个对象)。
  但因为js的弱类型机制及函数本身就是一个Function对象实例的原因,使得一个函数的调用者可以在运行时由一个切换到另一个。

看看下面这个例子:
var color = "blue";  //定义一个全局变量 color,相当于 window.color= "blue"

var o = { color: "red" };  //定义一个全局变量 o,相当于 window.o={ color: "red" }
  ////定义一个全局变量(方法)sayColor,相当于window. sayColor =function(){alert(this.color); }

    function sayColor() {

       alert(this.color);

    }

sayColor(); //输出blue.相当于window.sayColor();
//因此,此时sayColor中的this代表window.所以this.color=window.color


o.sayColor = sayColor; //此时将sayColor的函数指针赋值给o对象的属性sayColor

o.sayColor(); //那么此时sayColor里的this代表的是o,所以this.color=o.color="red"

 

本文来源于http://www.cnblogs.com/jameszou/archive/2011/08/15/2138595.html