什麼是物件
在Javascript中萬物皆物件。
典型的物件是由變數和函式組成的鍵值對的集合:
var obj1 = {
a: 1, //注意是逗號不是分號
b: 2,
c: function(){
...
}
}
複製程式碼
物件的屬性
- 獲取和操作屬性的兩種方式:
- obj.a
- obj[a]
- 當屬性名當中有特殊字元如空格或者連線符的時候只能用第二種方式
obj.first-name
報錯obj[first-name]
正確
- for in 遍歷時也只能用第二種方式。
- 遍歷屬性:
for(var pN in obj1){
console.log(pN+"的值是:"+obj1[pN]);
}
複製程式碼
建立物件的方法
- 字面量建立
var obj1 ={...}
:- 當想在obj1的基礎上建立obj2的時候就會出問題:
var obj2 = obj1; // 物件的賦值語句實際上是對地址的引用,其實obj2 和obj1指向同一個物件 obj2.a = 3; // obj2的屬性發生變化時,obj1也會相應變化 console.log(obj1.a); //3 複製程式碼
- 用類/建構函式的方式建立物件:解決了前面提到的問題,可以建立相似的多個物件例項。
- 區別於普通函式,類或建構函式常用this繫結到物件例項,並且函式名首字母大寫:
function PersonClass(pName, pAge){ //建立建構函式 this.name = pName; this.age = pAge; this.slogan = function(){ ... } } var person1 = new PersonClass("xiaoming","18"); //用new關鍵字建立person1物件 var person2 = new PersonClass("xiaohong","19"); //person2 與person1是不同的物件; 複製程式碼
- 名稱空間:多人同時做一個專案時,自己收集的方法集合,通常用自己名字縮寫作為字首呼叫:
murphy.slogan()
,
JavaScript自帶的一些常用物件和屬性:
如Date物件,Math物件等。詳情點選w3cschool javascript 手冊