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#如出一轍, 而結果也如咱們所料。方法