1. 程式人生 > >es5下物件相關的屬性和物件的處理方法

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)來將字串解析為物件