a. js物件都是關聯數組
b. inherit();傳回一個繼承自原型物件p的屬性的新物件
物件的方法:
建立(create) 設定(set) 尋找(query) 刪除(delete) 偵測(test)與枚舉(enumerate)
建立物件的方法:
#物件直接量 關鍵字new es5中的Object.create()
var aa=Object.create({"x":0,"y":1})
屬性的讀取與修改:
1.通過. 連線 屬性不可以改變,且無法改變
2.透過object['xxx'];
## 2.透過object['xxx']; xx'+a]; a可以是個變量,這樣屬性就不確定了,可以在運行中更改 3.查詢一個沒有的屬性會返回undefined# 4.查詢一個對象的屬性,如果物件不存在,就會拋出一個錯誤。如果查詢某物件的屬性,不讓他報錯可以這樣: var a=b&&b.c&&b.c.d;屬性的刪除 1. delete只能斷開宿主與宿主物件的聯繫,而不會去操作屬性中的屬性,不能刪除透過變數宣告或函數宣告所建立的全域全域物件屬性,成功傳回true,失敗傳回false delete a.b// a不再擁有屬性b delete a['b']//a不再擁有屬性b屬性的檢測 1.in運算子,hasOwnProperty(), propertyIsEnumerable() in左側屬性名,有側是物件如果物件的自有屬性或繼承屬性包含這個屬性就回傳true,否則false var a={x:1 } a.hasOwnPreperty('x');//true propertyIsEnumerable()是hasOwnPreperty()的增強版,只有屬性是可枚舉的,並且屬於這個對象,才返回true##” ## 2.最簡單的方法! ==是否為undefined
屬性的枚舉
1.在程式碼中給物件新增的所有屬性都是可枚舉的,在for/in中我們需要跳過一些屬性
for(p in o){
if(!o.hasOwnproperty(p)) continue ;//就跳過繼承屬性
for(p in o){
### if(typeof o[p]==="function") continue ;//跳過方法####### }###### 2.在es5中多了兩個函數###### Object.keys();//傳回一個數組,這個數組由物件中可枚舉的自有屬性所組成###### Object.getOwnPropertyNames(); //傳回物件中所有自有屬性的名稱#######屬性getter和setter (存取器屬性)####### 1.var 0={###### a:1,/ /普通的資料屬性###### ###### //存取器屬性都是成對定義的函數###### get b(){這裡是函數體},#### ### set c(){這裡是函數體}###### }#######為物件的三個屬性###### 1.原型屬性:###### 物件的三個屬性######var. ={x:1};//定義一個原型物件###### var o=Object.create(p);使用這個原型建立一個物件###### p.isPrototypeOf(0);/// true,o繼承自p###### Object.prototype.isPrototypeOf(o);//p繼承自Object.prototype###### 2.類屬性###### 3.可擴展性透過把物件傳入Object.esExtensible()判斷物件是否是可擴展的###### Object.prevenExtensions()將帶轉換的物件作為參數傳入去,就會變成不可擴展的,注意,轉換成就不能轉換回來了###### Object.seal()不僅能夠把物件設為不可擴展,而且能把其自身的所有自有屬性設為不可配置####### isSealed()檢測對象是否封閉###### Object.freeze() 凍結,不光不可配置,而且止咳可讀###### Object.isFrozen() 檢查物件是否凍結###############################################################################################對於物件### 1:JSON.stringify();//轉換為JSON字串###### 2::JSON.parse();//轉換為物件#######物件方法:### ### 1.toString();###### 2.toLocaleString();###### 3.toJSON();###### 4:valueOf();####以上是js物件的詳細介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!