JS趴趴往上走-物件篇

物件


除了原始型別,其他都是物件,例如我們常見的functionarray...都是物件的一種

關於型別,我們可以使用typeof來檢測,但是你會發現

 typeof 'Hello';        //string
 typeof 12345;          //number
 typeof true;           //boolean
 typeof null;           //object
 typeof undefined;      //undefined
 typeof [1,3,5];        //object 
 typeof function(){};   //function


null其實是一個早期JS設計時的一個Bug,現在因為重新改可能會造成以前一些問題,所以就沒修了,但null還是屬於原始型別哦,而function雖然顯示function,但是它是屬於物件的一種

來源



建立物件

物件(object)是個零至多種屬性的集合,而屬性是鍵 (key) 與值 (value) , 一個屬性的「值」可以是某個基本型別,或者另一個物件、函數...等

目前最常使用的是巢狀方式,使用{},把你要的資訊放入

 var house={
    houselife:10,
    livingRoom:{
       char:['紅色椅子','白色椅子','藍色椅子'],
       table:"圓形桌子"

    },
    bedRoom:{
       char:false,
       bed:true,
       window:function(){
           console.log('沒有開啟');
       }
    },
    kitchen:"沒有廚房";

}


我們也可以new一個新物件,之後在新物件裡新增屬性與方法

 var house=new Object(); //新建一個物件
 house.houseliee=10; //在house底下新增houseliee=10
 house.livingRoom={};//在house底下新增一個livingRoom物件
 house.livingRoom.table="圓形桌子"; //在house底下的livingRoom底下新增table="圓形桌子"

但這種方法不是建立物件最好的,所以建議使用巢狀方式



存取


當你想存取物件的屬性時你可以使用以下方法:

1.使用.
以上面範例想從house裡面拿到houselife的值以及從house得到livingRoom裡的table

 house.houselife; //10
 house.livingRoom.table; //圓形桌子


2.也可以使用[ ]存取

 house["houselife"]; //10
 house["livingRoom"]["table"]; //圓形桌子


另外範例有使用arrayfunction,想存取可以使用下面方式

 //array
 //選擇house裡的livingRoom裡的椅子 ,[]是他們的位子,從0開始計算
 house.livingRoom.char[2]; //藍色椅子
 house["livingRoom"]["char"][2]; //藍色椅子

 //function
 house.bedRoom.window(); //沒有開啟
 house["bedRoom"]["window"](); //沒有開啟


新增

若想新增,可以直接用=,跟new一樣建立物件就能新增了

 var obj={
   a:1234,
   b:"abcd"
 };
 obj.c="Object"; //新增物件

 obj.c; //"Object" 



大家也可以試著建立看看哦

留言