es5下物件相關的屬性和物件的處理方法

2021-07-04 05:52:33 字數 1174 閱讀 4175

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",)

7.屬性型別:

(1)原型屬性:

可以通過object.getprototypeof(obj)來獲取物件的原型

也可以通過obj.constructor.prototype來檢測物件的原型

可以用過obj2.isprototypeof(obj1)來檢測obj2是不是obj1的原型

(2)類屬性

(2)可擴充套件性

內建物件和自定義物件都是可擴充套件的

可以通過object.e***tensible(obj)來檢測物件是否是可擴充套件的

通過object.preventextensions(obj)、object.seal(obj)、object.freeze(obj)來將物件設定為不可擴充套件的

8.物件序列化

通過json.stringify(obj)來將物件轉化為字串

通過json.parse(obj)來將字串解析為物件

es5中的保護物件

由物件中的屬性容易修改,js 在es5 增加了物件的屬性保護物件 用來合理的限制修改範圍 檢視這個小物件 var dongdong var nameobject object.getownpropertydescriptor dongdong,name console.log nameobject ...

es5建立物件和es6的Class

es5建立物件的方式 有工廠模式,建構函式模式,原型模式和 組合使用建構函式模式 原型模式 最常使用的模式是 組合使用 建構函式模式 原型模式,這樣的好處是,每個例項可以保持獨特的例項屬性,也可以共有原型方法 function person name,age person.prototype.say...

Es5新增陣列和物件

為了更方便的對js中array的操作,es5規範在array的原型上新增了9個方法,分別是foreach filter map reduce reduceright some every indexof 和 lastindexof,foreach callback thisarg 替代for in ...