es6 屬性描述符 學習總結

2021-10-07 10:30:32 字數 1587 閱讀 5328

property descriptor 屬性描述符, 用於描述乙個屬性的相關資訊

通過 object.

getownpropertydescriptor

(obj, name)

例如:const obj =

const desc = object.

getownpropertydescriptor

(a,'a'

) 結果:

value: 屬性值

configurable: 該屬性描述屬性是否可以被修改

enumerable: 該屬性是否可以被列舉

writeable: 該屬性是否可以被重新賦值

object.

getownpropertydescriptor

(obj), 傳入乙個物件,獲取到所有物件的屬性描述

如果需要為某個物件新增屬性時 或 修改屬性時, 配置其他屬性描述符,使用如下**:

object.

defineproperty

(obj, propertyname, 描述符)

例如:const obj =

object.

defineproperty

(obj,

'a',

)const desc = object.

getownpropertydescriptor

(a,'a'

)// 可以修改乙個物件裡面的多個屬性描述

object.

defineproperty

(物件,多個屬性描述)

訪問器屬性: 屬性描述符中,如果配置了get 和 set 中的任何乙個,則該屬性,不在是乙個普通屬性, 而變成了訪問器

get 和 set 配置均為函式,如果乙個屬性是訪問器屬性,則讀取該屬性時,會執行get 方法,

將get 方法得到的返回值作為屬性值;如果給該屬性賦值,則會執行set 方法

例如:const obj =

object.

defineproperty

(obj,

"a",

,set

(val)})

// vue2中使用的是defineproperties 來手寫資料渲染頁面

性名: "name"

>

<

/span>

<

/p>

年齡:"age"

>

<

/span>

<

/p>

const namedom = document.

getelementbyid

("name");

const agedom = document.

getelementbyid

("age");

const user =

; object.

defineproperties

(user,

,set

(value)},

age:

,set

(value)}}

)

ES5 資料屬性描述符和訪問描述符

物件是乙個屬性集合,物件的基本特徵是屬性名 name 和屬性值 value es5 增加了屬性描述符,可以更細膩的控制屬性的不同操作。屬性描述符有 configurable writable 和 enumerable。屬性描述符通常和 object.defineproperty object.def...

屬性描述符

在es5開始,所有屬性都具備了屬性描述符。我們可以通過object.getownpropertydescriptor來觀察到屬性的描述符,它是長這樣子的。object.getownpropertydescriptor a writable決定該屬性是否唯讀。enumerable決定該屬性是否可列舉。...

屬性描述符

property descriptor 屬性描述符 是乙個普通物件,用於描述乙個屬性的相關資訊 通過object.getownpropertydescriptor 物件,屬性名 可以得到乙個物件的某個屬性的屬性描述符 object.getownpropertydescriptors 物件 可以得到某...