Javascript 的物件導向編程——類及變數的定義部分

來源:互聯網
上載者:User

首先聲明js是指令碼性語言,非物件導向語言。我這裡所做的是嘗試用js將物件導向中的各種特性類比出來。

 

  1//定義類
  2
  3var Test=function()
  4
  5{
  6
  7     //定義私人變數
  8
  9     //這裡的私人變數是指Test內部的變數
 10
 11     var priParam="Private";
 12
 13     //定義共有變數,外界及Test內建函式也可訪問到
 14
 15     //這裡的this指向Test
 16
 17     this.pubParam="Public";
 18
 19     
 20
 21     //定義私人函數
 22
 23     var priFun=function()
 24
 25     {
 26
 27          //這裡可以訪問私人變數
 28
 29          alert(priParam);
 30
 31          //這裡的var變數,其範圍為priFun內,外部無法訪問
 32
 33          var theParam1="theParam1";
 34
 35          alert(theParam1);
 36
 37          //這裡定義this指向Test,定義this. pubParam2,其實作用就是定義了Test. pubParam2
 38
 39          //但是卻訪問不到pubParam,借用物件導向的說法因為pubParam不是靜態變數,必須Test執行個體化後才可以訪問
 40
 41          this. pubParam2="pubParam2";
 42
 43          alert(pubParam2);
 44
 45          alert(this.pubParam2);
 46
 47          //這裡會報錯
 48
 49          //alert(this.pubParam);
 50     }
 51
 52
 53
 54     //定義公有函數
 55
 56     this.pubFun=function()
 57
 58     {
 59
 60          //可以訪問定義的私人函數
 61
 62          priFun();
 63
 64          //可以訪問私人變數
 65
 66          alert(priParam);
 67
 68          //可以訪問公有變數
 69
 70          alert(this.pubParam);
 71
 72     }
 73
 74
 75
 76     //定義初始化函數
 77
 78     this.Create=function()
 79
 80     {
 81
 82          priParam="Private Param";
 83
 84          this.pubParam="Public Param";
 85
 86     }
 87
 88     this.Create();
 89
 90}
 91
 92
 93
 94//定義並執行個體化一個類執行個體
 95
 96//這裡實際調用了Test.Create();
 97
 98var test=new Test();
 99
100//Test中用this定義的變數,執行個體化後可以被訪問,但是沒辦法訪問priParam
101
102alert(test.pubParam);
103
104alert(test.priParam);     //會提示為undefined
105
106//可以調用pubFun();但無法調用priFun();
107
108test.pubFun();
109
110//test.priFun();     //這裡會報錯
111

 

 

看了上面的代碼後,有心人就會發現在變數定義中var 和 this 的作用非常不一樣,我們現在是知其然,那麼其所以然是如何的呢?

先吃飯,回頭說

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.