天天看點

《javascript進階程式設計》讀書筆記——引用類型之Object類型(細節整理)

建立Object執行個體兩種方法:

①用 new 加Object構造函數

var person =new Object();

person.name='lxf';

person.age=20;

②對象字面量表示法(花括号)

var person = {

"name":"lxf",

"age":"20"

}

關于對象字面量表示法的細節:

①花括号出現在表達式語句指派操作符後面,表示後面是一個“對象的開始”;對比if語句後的花括号表示“語句塊的開始”;

②對象字面量表示法中最後一個屬性不能最後不加逗号,如果加了會在IE7及其以下版本和 Opera中報錯;

③在對象字面量表示法的另外一種建立方式 var person={ }; 與 var person =new Object();類似 ,差別如下第四條;

④在對象字面量表示法建立對象時不會調用Object構造函數(可提高效率,有利于JS優化);

⑤用對象字面量表示法給函數傳參:雖然命名參數容易處理,但多個可選參數的情況顯示不夠靈活,推薦"傳參單個數值"用命名參數,

  傳參多個可選參數用字面量表示法封裝,如下

   function display(arg){ }

   var person="lxf";

  display(person);

   display({"name":"lxf","age":"20"});

通路對象屬性的兩種方法:

①JS同許多其他語言一樣通路對象時一般用 “object . 屬性名”的方法。

②JS允許把屬性名用 object[ "屬性名"] 的方式通路成員屬性

  方括号的兩條優點:

  <1>通過變量通路屬性,如上的person 對象:

    var userName= "name";

    alert(person[userName]);//lxf

   這種方法在調用動态變化的屬性名時非常有用,如 從背景傳回的JSON資料中讀取變量屬性,此時屬性名不确定,可以把它讀出來指派給變量然後通路。

  <2>屬性名包含可能引起錯誤的字元(非數字非字母,如空格和其他符号)時不能用點的方法,隻能采用[ ];

     如 alert(person["first name"]);正确 ,而 alert(person .first name)将出錯。

注:除非必須采用變量通路屬性,否則建議用點方法表示。

繼續閱讀