以前對this的理解太過於膚淺,對於它的理解僅僅停留在指代對象的層次。對於this的用法一旦換了個環境就不曉得它指代哪一個對象,多層類的調用也會出現不理解的現象。所以,通過測試this用法,初步得出結論,現記錄於此。函數
1 this是成員函數的一個特殊的固有的本地變量,它表達了(指向)調用這個函數的那個對象。測試
2 this起到了一個臨時的表明做用,至關於一個變量。this
3 this表明對本類對象的引用,指向本類已經建立的對象,爲何this指代的是本類的對象呢?spa
由於,可以調用本類函數的對象(這個對象的不管有幾個管理者(能夠是本身建立的變量,也能夠是其餘對象的成員變量),這些管理者最終都是要指向這個對象並與之創建聯繫的)必定是依據本類建立的,而this它最終與調用成員函數的那個對象創建了一個臨時的鏈接,也指代或表明或表達了那個對象,所以,簡而言之,this就是表示了它所在成員函數所在的類所建立的對象。對象
因此,this關鍵字「出如今」哪一個類中,就表明了那個類的對象。變量
4 另外,this並不能用在靜態成員函數中,爲何呢?this的用法
由於靜態成員函數屬於類,在類存在的時候就已經存在了,不須要依託建立對象去訪問,而this指代實例對象,當沒有使用對象去調用靜態成員函數的時候,這個this是不合邏輯的,程序根本沒法執行,所以,this放在靜態成員函數中是錯誤的用法。引用
5 成員函數之間相互引用默認有一個this關鍵字,所以不須要添加this,成員函數中引用成員變量也是如此。程序
6 對於對象,或者this指代的對象都是能夠做爲參數傳遞的,一個對象能夠有多個管理者(變量),但一個管理者只能有一個對象,或者說管理者的指向(包含的地址值)是單一的。co