值得注意,该关键字在javascript中和执行环境,而非声明环境有关。
一般而言,在javascript中,this指向函数执行时的当前对象。在没有明确的当前对象时, this指向window.
总的原则是,this指的是调用函数的对象。
需要特别注意的是:setTimeout、setInterval和匿名函数执行时的this指向全局对象。
下面分四种情况详细讨论。
1.纯粹的函数调用
this 指向全局对象,即浏览器的window.
2.作为对象的方法调用
this指向这个调用对象。
3.作为构造函数
this指向 生成的新对象。
4.使用apply,call调用
this指向函数的第一个参数,缺省条件下默认为window.
http://www.ruanyifeng.com/blog/2010/04/using_this_keyword_in_javascript.html
http://www.ibm.com/developerworks/cn/web/1207_wangqf_jsthis/index.html