1.用到AJAX類型
2實現
3.注意點
4.用例
我們要用AJAX的JS寫一個物件導向的類,首先我們必須理解AJAX中的Type類,在定義類時一個需要定義這個類的名字空間,我們在寫JS指令碼時在寫類似與名字空間往往很困難或很反鎖,在使用JS指令碼時也很可能在多個指令碼引用會出現重名的現象,導致出現名字衝突而程式無法運行,MSAJAX給我們提供了一個便捷的註冊名字空間的方法-Type.registerNamespace().
接下來建立一個類並建立她的建構函式,定義類欄位並把參數傳給類所屬欄位.
fww.Person=function(id,name)
{
this._id=id;
this._name=name;
}
第三步建立類的屬性,屬性放在 class.prototype 中,get 表示獲得,set表示獲得,方法同屬性一樣只是不需要get,set
fww.Person.prototype=
{
get_id:function()
{
return this._id;
},
get_name:function()
{
return this._name;
},
set_name:function(value)
{
if(value!=null)
{
this._name=value;
}
},
tostring:function()
{
return String.format("你好,我是{0},我的工號是:{1}",this.get_name(),this.get_id());
}
}
第四步將類註冊給MSAJAX
fww.Person.registerClass("fww.Person");
這個一個物件導向的類就建立成功了,
注意點:
1.在定義屬性和方法,建議大家用get,與set ,其實這裡在JS內部是不區分的你不用get,與set 也沒關係主要是為了讓別人或自己更明白這個函數的意義,這個算是個規範吧.
2.在定義類欄位時我並沒有像.NET中在建構函式外顯示定義類欄位,而是用了this.FiledName,這個時可行的因為JS是一種弱類型語言,允許這樣做,this._id等同與在類中定義 var id.
3.在調用類屬性時不要忘了加()噢!大家可能用.NET習慣了person.get_name來調用,在JS這樣時錯誤的,我在的一點已經說過了在JS中不管時屬性和方法他們都時Function方法所有真確的調用時必須加()-person.get_name(),這樣才會調用成功.
4.在寫屬性的set方法時要注意判斷value的值是否是NULL,當然這個只是我點建議您不寫也可以
完整用例:
Type.registerNamespace("fww")
fww.Person=function(id,name)
{
this._id=id;
this._name=name;
}
fww.Person.prototype=
{
get_id:function()
{
return this._id;
},
get_name:function()
{
return this._name;
},
set_name:function(value)
{
if(value!=null)
{
this._name=value;
}
},
tostring:function()
{
return String.format("你好,我是{0},我的工號是:{1}",this.get_name(),this.get_id());
}
}
fww.Person.registerClass("fww.Person");
就那麼多了在MSAJAX第三章-JS建立類(2)中交大家怎麼去寫一個繼承類的寫法.