JS趴趴往上走-物件篇
物件
除了原始型別,其他都是物件,例如我們常見的
function
、array
...都是物件的一種關於型別,我們可以使用
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"]; //圓形桌子
另外範例有使用
array
和function
,想存取可以使用下面方式
//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"
大家也可以試著建立看看哦
留言
張貼留言