天天看點

js中中括号,大括号使用詳解

 http://hi.baidu.com/niejunhua/blog/item/07df5b4391e6560d9213c67c.html

一、{ } 大括号,表示定義一個對象,大部分情況下要有成對的屬性和值,或是函數。

如:var LangShen = {"Name":"Langshen","AGE":"28"};

上面聲明了一個名為“LangShen”的對象,多個屬性或函數用,(逗号)隔開,因為是對象的屬性,

是以通路時,應該用.(點)來層層通路:LangShen.Name、LangShen.AGE,當然我們也可以用數組的方式來通路,如:LangShen["Name"]、LangShen["AGE"],結果是一樣的。

該寫法,在JSON資料結構中經常用,除此之外,我們平時寫函數組的時候,也經常用到,如:

var LangShen = {

Name = function(){

return "LangShen";

},

Age = function(){

return "28";

}

調用方式差不多,因為是函數組,是以要加上(),如:alert( LangShen.Name() );

二、[ ]中括号,表示一個數組,也可以了解為一個數組對象。

如:var LangShen = [ "Name","LangShen","AGE","28" ];

很明顯,每個值或函數,都是獨立的,多個值之間隻用,(逗号)隔開,因為是數組對象,是以它等于:

var LangShen = Array( "Name","LangShen","AGE","28" );

通路時,也是和數組一樣,alert( LangShen[0] );

三、{ } 和[ ] 一起使用,我們前面說到,{ } 是一個對象,[ ] 是一個數組,我們可以組成一個對象數組,如:

var LangShen = { "Name":"Langshen",

"MyWife":[ "LuLu","26" ],

"MySon":[{"Name":"Son1"},{"Name":"Son2"},{"Name":"Son3"}]

從上面的結構來看,是一個對象裡面的第一項是個屬性,第二項是一個數組,第三個是包含有多個對象的數組。調用起來,也是一層一層通路,對象的屬性用.(點)疊加,數組用 [下标] 來通路。

如:alert( LangShen.MySon[1].Name ) ;

============下面是另外一篇介紹==================================================

一、大括号{}表示對象:

javascript供了另外一種簡單的方式來建立對象,即大括号({})文法:

arr = {

    a:5, //對象屬性,a是變量名

    b:8,

    c:function(){return this.a + this.b;}, //對象方法

    d:['a':1,'b':2] //對象屬性,數組

通過大括号包覆多個屬性或方法及其定義(這些屬性或方法用逗号隔開),來實作對象的定義,這段代碼就直接定義個了具有n個屬性或方法的對象,其中屬性名和其定義之間用冒号(:)隔開。

document.write(arr.c());

注意,各屬性間用逗号(,)隔開。使用這種方式來定義對象,還可以使用字元串作為屬性(方法)名,例如:

var obj={“001”:”abc”}

因為這種簡單對象沒有通過構造函數創造是以也就沒能在對象外添加方法。

<b>對比構造函數創造的對象</b>:

function Test(a,b){

    this.a = a;

    this.b = b;

    this.c = function(){return this.a + this.b;}

Test.prototype.d = function another(){

    return this.a * this.b * Math.PI;

};

arr = new Test(5,8);

輸出:13

document.write(arr.d());

輸出:125.66370614359172

<b>二、中括号 [ ] 表示數組:</b>

arr = [

      [1,2], //數組

      ['a','b'],

      [{c:'a1',d:'b1'},{e:'a2',f:'b2'}] //對象

      ];

for(key in arr){

    for(chikey in arr[key]){

        document.write(chikey + "=&gt;" + arr[key][chikey] + "&lt;br /&gt;");

    }

輸出:

0=&gt;1

1=&gt;2

0=&gt;a

1=&gt;b

0=&gt;[object Object]

1=&gt;[object Object]

document.write(arr[2][1].e);

輸出:a2

這裡,數組的第三組是未命名的對象,可以用arr[2][1].e的方式指定通路屬性。當然也可以周遊:

for(key in arr[2]){

    for(val in arr[2][key]){

        document.write(val + "=&gt;" + arr[2][key][val] + "&lt;br /&gt;");

c=&gt;a1

d=&gt;b1

e=&gt;a2

f=&gt;b2

<b>三、數組與對象</b>

在js中,上述的對象與數組的建立很相似,有人稱第一種方式為js的關聯數組,姑且吧;但在中括号中就不能使用['a':'b']的形式,隻能以索引數組的形式,即下标隻能是數字,如[1,2]或['a','b'],這點須注意。