javascript聲明對象的方式

來源:互聯網
上載者:User

(1):通過new操作符範圍Object對象,構造一個新的對象;然後動態添加屬性,從無到有的構建一個對象‘

(2):定義對象的“類”原型,然後使用new操作符來批量的構築新的對象。

      
 //定義一個類Address
   function
Address(street,xno){
    this.street=street
|| 'A Road';
    this.xno=xno
||35;
    this.toString=function(){

    

     return
"street----"+this.street+",xno---"+this.xno;
    }

   }
   //定義一個類Person

   function
Person(name,age,addr){
    this.name=name
|| "unknow";
    this.age=age;

    this.addr=addr
|| new Address(null,null);
    

    this.getName=function(){

     return
this.name;
    }

    this.getAge=function(){

     return
this.age;
    }

    this.getAddr=function(){

     return
this.addr.toString();
    }

   }
   //通過new操作符來建立對象;注意這兩個對象是相對獨立的實體

   var jack=new
Person('jack',26,new Address('qinghaiRoad',123));
   var ab=new
Person('ab',26);
   alert(jack.getName());

   alert(jack.getAge());

   alert(jack.getAddr());

   alert(ab.getName());

   alert(ab.getAge());

   alert(ab.getAddr());

  
可加以斷點調試看看...對於"||"我不是很理解,那是預設值,請高手講解...

(3):使用json來構建

   json(javascript Object
Notation),即通過字面來表示一個對象,從簡單到複雜的使用此方式。

    var
obj={
    name:"ab",

    age:26,

    birthday:new
Date(1984,12,12),
    addr:{

     street:"qinghai
Road",
     xno:"135"

    }

   }

  
這種方式,顯然比第二種聲明類,在類中添加對象簡潔的多,很清晰了表達了obj這樣一個對象的結構。事實上,大多數有經驗的javascript程式員更傾向與使用這中表示方法,包括很多的javascript的工具包,如JQuery,和Extjs等都大量的使用Json。Json事實上已經作為了一種前端與伺服器端資料交換格式.前端程式通過Ajax發送Json對象到後端,伺服器指令碼對Json進行解析,還原成伺服器對象,然後做了一些處理,反饋給前端的仍然是Json對象,使用同一資料格式,可以降低出錯的幾率。

 
而且Json格式資料本身也是可以遞迴的,可以任意的表達複雜的資料格式。Json寫法很簡單,即用花括弧括起來的是索引值對,索引值對通過冒號隔開,而值可以是任意的javascript對象;如簡單對象String,Boolean,Number,Null,或者是複雜物件如Date,Object,其他自訂對象等.....

  
json的另一個應用情境是:當一個函數擁有多個傳回值,在傳統的物件導向的語言中,我們需要組織一個對象,然後返回,而javascript則完全不需要這麼麻煩.

 function Point(left,top){
   
 this.left=left;
    
this.top=top;
    
return {x:this.left,y:this.top};
    }

  直接動態構建一個新的匿名對象返回就OK了. var
pos=Point(2,3);

使用json返回對象,這個對象可以有任意複雜的結構,設定可以包括函數對象。在實際編程中,我們通常需要遍曆一個JavaScript對象,
事先我們對對象一無所知,我們可以通過for...in形式的文法糖....

    for(var
item  in json){

   //item為鍵

   //Json[item]為值

}

相關文章

Alibaba Cloud 10 Year Anniversary

With You, We are Shaping a Digital World, 2009-2019

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

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

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