1 <script type="text/javascript"> 2 function Person(){ 3 /*使用var 屬性名定義的屬性是類的私有屬性,外界無法訪問,要想被外界訪問,就要使用公共方法*/ 4 var QQ="123456"; 5 var Email="123456@qq.com"; 6 7 /*使用this.屬性名定義的屬性就是類的公共屬性,是可以被外界訪問的*/ 8 this.Name="孤傲蒼狼"; 9 this.Age=24; 10 11 /*定義Person類的公共方法,凡是定義類的公共屬性和公共方法都要使用this*/ 12 this.Show=function(){//定義Person類的公共方法(特權方法) 13 alert("QQ="+QQ+"\tEmail="+Email); 14 15 } 16 17 /*定義Person類的私有方法*/ 18 function Show2(){//這是Person類的一個私有方法,只能在Person類內部使用 19 20 } 21 } 22 23 var p1 = new Person(); 24 alert("私有屬性p1.QQ="+p1.QQ+"\t"+"p1.Email="+p1.Email); 25 alert("公共屬性p1.Name="+p1.Name+"\t"+"p1.Age="+p1.Age); 26 p1.Show(); 27 //p1.Show2();//這里會報錯,無法調用Person類的私有方法, 28 29 /* 30 Window 對象描述 31 Window 對象表示一個瀏覽器窗口或一個框架。在客戶端 JavaScript 中,Window 對象是全局對象,所有的表達式都在當前的環境中計算。 32 也就是說,要引用當前窗口根本不需要特殊的語法,可以把那個窗口的屬性作為全局變量來使用。例如,可以只寫 document,而不必寫 window.document。 33 34 同樣,可以把當前窗口對象的方法當作函數來使用,如只寫 alert(),而不必寫 Window.alert()。 35 */ 36 function Test(){ 37 alert(this.v); 38 } 39 v=90; 40 Test(); 41 window.Test();//記住一句話:哪個對象調用this所在的函數,那么this代表的就是哪個對象實例,這里是window對象調用Test()方法,因此此時this指的就是window對象 42 43 function Test2(){ 44 this.fnTest=function(){ 45 alert(this.v2); 46 } 47 } 48 49 var t = new Test2(); 50 t.v2="記住一句話:哪個對象調用this所在的函數,那么this代表的就是哪個對象實例"; 51 t.fnTest();//這里是t對象調用Test()方法,因此此時this指的就是t對象 52 </script>
JavaScript的this總結:
1、this不能在類定義的外部使用,只能在類定義的內部使用。
2、哪個對象調用this所在的函數,那么this代表的就是哪個對象實例。