es5下物件相關的屬性和物件的處理方法
1.新建物件:
new、自面量、建構函式例項
Object.create(Object.prototype)
2.刪除物件屬性:
delete o.x
3.檢測物件屬性是否存在:
(1)in
“x” in obj //返回布林值
4.列舉屬性
(1)for in
遍歷物件中可列舉的屬性。除開物件內建的繼承屬性,其餘的自身屬性或者來自原型物件上的繼承屬性都可以被枚舉出來
(2)Object.keys(obj)
返回陣列,每一項式obj中可列舉的自身屬性的屬性,不包含繼承
(3)Object.getOwnPropertyNames(obj)
返回陣列,包含所有的自身屬性
5.存取器屬性set、get
由set和get定義的都是函式(無function關鍵字)
6.屬性特性:
(1)存取性屬性特性:get、社團、enumerable、configurable
(2)一般屬性特性:value、writable、enumerable、configurable
可通過Object.getOwnPropertyDescriptor()來檢測屬性特性的值
可通過Object.defineProperty()來設定物件屬性的特性
Object.defineProperty(obj,"x",{writable:false})
7.屬性型別:
(1)原型屬性:
可以通過Object.getPrototypeOf(obj)來獲取物件的原型
也可以通過obj.constructor.prototype來檢測物件的原型
可以用過obj2.isPrototypeOf(obj1)來檢測obj2是不是obj1的原型
(2)類屬性
(2)可擴充套件性
內建物件和自定義物件都是可擴充套件的
可以通過Object.esExtensible(obj)來檢測物件是否是可擴充套件的
通過Object.preventExtensions(obj)、Object.seal(obj)、Object.freeze(obj)來將物件設定為不可擴充套件的
8.物件序列化
通過JSON.stringify(obj)來將物件轉化為字串
通過JSON.parse(obj)來將字串解析為物件