Javascript 類的實現

來源:互聯網
上載者:User

近在幾個群上經常看到有人問在一個類裡的一個 function 怎麼調用 this.  定義後公開的方法。現發一篇類實現的隨筆。

首先說說類,在一個類裡我們會有以下的幾個特徵:

1. 公有方法

2. 私人方法

3. 屬性

4. 私人變數

5. 建構函式

我們直接看一個例子:

/***定義類***/var Class = function(){    var _self = this;//把本身引用負值到一變數上    var _Field = "Test Field"; //私人欄位    var privateMethod = function(){ //私人方法        alert(_self.Property); //調用屬性    }    this.Property = "Test Property"; //公有屬性    this.Method = function(){ //公有方法        alert(_Field); //調用私用欄位        privateMethod(); //調用私用方法    }}

  

這裡我已把注釋都寫上,大家大概也會一眼就看得明白。對於少寫JS的朋友,可能會覺得奇怪為什麼我會定義一個_self的變數, 因為在js裡,this不用對於其他的對象語言,他的解析過程與運行過程中this會改變的。這裡簡單說說js裡this的定義,若有需要我可以開多一篇。

定義:this是包含它的函數作為方法被調用時所屬的對象。

特徵:this的環境可以隨著函數被賦值給不同的對象而改變!

有興趣的朋友可以網上找找資料瞭解一下,說回正題,這裡的_self目的是為了開多一個私人的變數,把引用直接指向類的本身。

剛剛還說到一個建構函式的問題,這可以直接用代碼來實現。在函數的最後直接寫執行代碼就OK。

/***定義類***/var Class = function(){    var _self = this;//把本身引用負值到一變數上    var _Field = "Test Field"; //私人欄位    var privateMethod = function(){ //私人方法        alert(_self.Property); //調用屬性    }    this.Property = "Test Property"; //公有屬性    this.Method = function(){ //公有方法        alert(_Field); //調用私用欄位        privateMethod(); //調用私用方法    }    /***建構函式***/    var init = function(){        privateMethod();    }    init();}

  

使用這個類

var c = new Class();
c.Method(); //使用方法
這樣就OK了

轉載請註明轉自《Javascript 類的實現》

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.