JS類的封裝

js並非一種面向對向的語言, 沒有提供對類的支持, 所以咱們不能像在傳統的語言裏那樣 用class來定義類, 但咱們能夠利用js的閉包封裝機制來實現js類閉包

1. 定義js類 
js並非一種面向對向的語言, 沒有提供對類的支持, 所以咱們不能像在傳統的語言裏那樣 用class來定義類, 但咱們能夠利用js的閉包封裝機制來實現js類, 咱們來封裝一個簡的Shape類. 測試

function ShapeBase() { 
this.show = function() 

alert("ShapeBase show"); 
}; 
this.init = function(){ 
alert("ShapeBase init"); 
}; 
this

這個類裏定義了兩個方法:show和init, 須要注意的是這裏用到了this來聲明, 而不是var, 由於用var是用來定義私有方法的. 
另外, 咱們還能夠用prototype屬性來定義Shape的方法. prototype

ShapeBase.prototype.show=function() 

alert("ShapeBase show"); 

ShapeBase.prototype.init=function() 

alert("ShapeBase init"); 
it

上面這種寫法看起來不太直觀,咱們能夠將全部的方法寫在一塊兒. io

ShapeBase.prototype={ 
show:function() 

alert("ShapeBase show"); 
}, 
init:function() { 
alert("ShapeBase init"); 

}; function

讓咱們寫個js來測試下, 看看結果是否是跟咱們想象的同樣class

function test(src){ 
var s=new ShapeBase(); 
s.init(); 
s.show(); 
test

其調用方式和C#如出一轍, 而結果也如咱們所料。方法

相關文章
相關標籤/搜索