1. 程式人生 > >JS學習(二)物件屬性的獲取和訪問

JS學習(二)物件屬性的獲取和訪問

var array = ["one","two","three"];//陣列
var obj = {//物件
    field : "self",
    printInfo : function (){
        alert(this.field);
    },
    outter:{
        inne : "inner text",
        printInnerText:function(){
            alert(this.inne);
        }
    }

//點運算子的左邊為一個物件(屬性的集合),應該注意的是右邊的值除了作為左邊的物件的屬性外,同時還可能是它自己的右邊的值的物件:
};
var obj2 = {
    "self.ref" : obj //一個好的解決方法是使用中括號 [   ] 運算子來訪問:
};
obj.printInfo();
obj.outter.printInnerText();
obj2["self.ref"].outter.printInnerText();
 
for(var key in obj2){alert(key+":"+obj2[key]);}

//建議在不知道物件的內部結構的時候(比如要遍歷物件來獲取某個屬性的值),
//一定要使用中括號,這樣可以避免一些意想不到的 bug。
}
 
//JavaScript 物件的本身就是一個字典(dictionary),或者 Java 語言中的 Map,或者
//稱為關聯陣列,即通過鍵來關聯一個物件,這個物件本身又可以是一個物件,根據此定義,
//我們可以知道 JavaScript 物件可以表示任意複雜的資料結構。
 
//屬性是由鍵值對組成的,即屬性的名字和屬性的值。
var jack = new Object();
jack.name = "jack";
jack.age = 26;
jack.birthday = new Date(1984,4,5);
 
var address = new Object();
address.street = "Huang Quan Road";
address.xno = "135";
 
//將addr屬性賦值為物件address
jack.addr = address;
 
var ja = jack[addr];//我們在開發通用的工具包時,應該對使用者可能的輸入不做任何假設,
                    //通過[屬性名]這種形式則總是可以保證正確性的。
alert(ja.xno);