值得注意,該關鍵字在javascript中和執行環境,而非聲明環境有關。
通常而言,在javascript中,this指向函數執行時的當前對象。在沒有明確的當前對象時, this指向window.
總的原則是,this指的是調用函數的對象。javascript
須要特別注意的是: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