Javascript 類與靜態類的實現-js物件導向

品讀夜的黑發表於2016-04-01

在Javascript裡,對物件導向並沒有一個直接的實現,對於程式碼方面也是非常的靈活。

今天所要說的就是,如何在Javascript裡寫類與靜態類,這是本人一慣用的方法,你也可以有更為方便的,也可以發發評論跟大家交流交流。
首先說說類,在一個類裡我們會有以下的幾個特徵:
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();
這樣就OK
類的定義就說完了,靜態類,要等到下一次了。因為有MM叫我去喝茶
一個人能夠走多遠,取決於與誰同行

相關文章