最近在幾個群上經常看到有人問在乙個類裡的乙個 function 怎麼呼叫 this. 定義後公開的方法。現發一篇類實現的隨筆。
首先說說類,在乙個類裡我們會有以下的幾個特徵:
1. 公有方法
2. 私有方法
3. 屬性
4. 私有變數
5. 建構函式
我們直接看乙個例子:
/***定義類***/
var class = function()
this.property = "test property"; //公有屬性
this.method = function()
}
這裡我已把注釋都寫上,大家大概也會一眼就看得明白。對於少寫js的朋友,可能會覺得奇怪為什麼我會定義乙個_self的變數, 因為在js裡,this不用對於其他的物件語言,他的解析過程與執行過程中this會改變的。這裡簡單說說js裡this的定義,若有需要我可以開多一篇。
定義:this是包含它的函式作為方法被呼叫時所屬的物件。
特徵:this的環境可以隨著函式被賦值給不同的物件而改變!
有興趣的朋友可以網上找找資料了解一下,說回正題,這裡的_self目的是為了開多乙個私有的變數,把引用直接指向類的本身。
剛剛還說到乙個建構函式的問題,這可以直接用**來實現。在函式的最後直接寫執行**就ok。
/***定義類***/
var class = function()
this.property = "test property"; //公有屬性
this.method = function()
/***建構函式***/
var init = function()
init();
}
使用這個類
var c = new class();
c.method(); //使用方法
這樣就ok了
**:
JavaScript實現類的模擬
類的模擬 包括兩種方式 function school n,a var s1 new school 鄭州高階中學 中原路京廣路 s1.teach var s2 new school 鄭州it學院 政通路 s2.teach function school school.prototype.name 鄭...
Javascript 類與靜態類的實現 續
直接看例子 定義靜態類 var staticclass function 定義返回的公有物件 var field test static field 私有字段 var privatemethod function return return 生成公有靜態元素 這次,我用的是閉包的方式去實現,其中最重...
JavaScript棧的實現
建立乙個類來表示棧 function stack 移除棧頂的元素 this.pop function 返回棧頂元素 返回陣列的最後乙個元素 this.peek function 棧為空返回0,否則返回false this.isempty function 返回棧的長度 this.size funct...