MSAJAX第三章-JS建立類(1)

來源:互聯網
上載者:User

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)中交大家怎麼去寫一個繼承類的寫法.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.