(三)Javascript物件導向:對象(Object)

來源:互聯網
上載者:User

 

javascript中的對象建立聲明:

    var obj = {}; 或者 var obj = new Object(); 

    為對象加入屬性,方法:

    //=====第一種寫法====================================

    obj.name = '小明';    //為對象加屬性

    obj.updateName = function(name){//為對象定義updateName方法
        this.name = name;
    }

    alert(obj.name);

    obj.updateName("小強");    //調用updateName修改obj對象的name屬性值 

    alert(obj['name']);

    第一次顯示結果為:小明

    第二次顯示結果為:小強

    //=====第二種寫法====================================

    obj['name'] = '張三';     //為對象加屬性
    obj['updateName'] = function(name){//為對象定義updateName方法
        obj['name'] =name;
    }; 

    alert(obj.name);

    obj.updateName('李四');    //調用updateName修改obj對象的name屬性值 

    alert(obj['name']);

    第一次顯示結果為:張三

    第二次顯示結果為:李四

    //=====第三種寫法====================================

    var obj = {
        name:  '王五',    //為對象加屬性
        updateName: function(name){//為對象定義updateName方法
            this.name = name;      
        }
    };

    alert(obj .name);

    obj.updateName("趙六");    //調用updateName修改obj對象的name屬性值

    alert(obj .name);

    第一次顯示結果為:王五

    第二次顯示結果為:趙六

    //=====分析=====================================

    第一種寫法是最普通的對象寫法,因為javascript是動態語言,與Java和.Net不同,

    在程式運行並建立對象後,還可以對該對象的內部結構進行修改,

    比如添加屬性和方法(java和.net中的反射機製做不到這點)。

    (a): var obj = {} || new Object();

    (b):obj.name = "張三";

    (c):obj.updateName = function(name){ this.name = name};

    當程式執行(a) 後,便建立了一個Null 物件(不包含任何方法和屬性)obj,

    當程式執行(b) 後,改變了obj的內部結構,加了一個屬性name,

    當程式執行(c) 後,改變了obj的內部結構,加了一個方法updateName ,

    而這都是在啟動並執行時候完成的動作

    第二種寫法像數組,但絕不是數組,區分是不是數組可以如此判斷:

    if(typeof(obj.length) == "undefined") {
        alert("obj不是數組,數組都有length屬性!");
    }else{
        alert("obj是數組!");
    }

    第二種寫法更像一種資料結構:map ,如:obj[key] = value;

    key是字串,value可以是任何類型,變數,對象,函數等。

    可以通過這種方式遍曆對象內部結構:

    for(var key in obj)
    {
        alert(key);

        var value = obj[key];

        alert(value);
    }

    通過alert可以顯示出你所定義的內容。

    第三種寫法一看就是map的內部結構了,一個對象,內部完全用key : value索引值對方式表示

    JSON對象也是這種結構,只要對map或者JSON對象有所熟悉的就很容易理解了。

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.