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”}
因爲這種簡單對象沒有通過構造函數創造所以也就沒能在對象外添加方法。
對比構造函數創造的對象
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);
document.write(arr.c());
輸出:13
document.write(arr.d());
輸出:125.66370614359172

二、中括號 [ ] 表示數組:
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 + "=>" + arr[key][chikey] + "<br />");
    }
}
輸出:
0=>1
1=>2
0=>a
1=>b
0=>[object Object]
1=>[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 + "=>" + arr[2][key][val] + "<br />");
    }
}
輸出:
c=>a1
d=>b1
e=>a2
f=>b2

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章