2009年12月30日星期三

[note]Javascript里的this

this关键字指代它所在的域的对象。

看如下代码:

var test = function() {
   alert(this);
   this.f = function() {
       alert(this);
   };
};
test();
var t =new test();
t.f();

执行结果为:

Object Window
Object Object
Object Object

 执行test();时,test是作为一个函数,而此函数所在的域是Window,故显示的是Object Window。
执行var t =new test();时,test是作为一个初始化函数,生成了它的对象实例t,此时产生了一个新的域t,故显示Object Object。
执行t.f();时,f是一个在域t中执行的函数,而f不是一个域只是一个函数,故显示Object Object。

没有评论: