Object 屬性描述符

2021-10-04 16:30:28 字數 2355 閱讀 4258

屬性描述符是乙個普通的物件中用來描述屬性的相關資訊。

object.getownpropertydescriptor() 返回指定屬性描述符

返回物件的key屬性的屬性描述

屬性描述

value

屬性值configurable

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

enumerable

是否可以列舉

writable

是否可以重新賦值

object.getownpropertydescriptors() 返回全部屬性描述符

object.defineproperty() 修改某個屬性描述符

const obj =

;object.

defineproperty

(obj,

"a",

)

當然也可以使用object.defineproperties()同時修改多個。

object.

defineproperties

(obj,

, b:

})

其中value修改屬性值。

console.

log(obj)

//

configurable是否可以被屬性描述符修改。當設定為false後,不能再進行修改屬性描述符,當屬性描述有一項嘗試修改時會報錯。

object.

defineproperty

(obj,

"a",

)object.

defineproperty

(obj,

"a",

)// typeerror

enumerable是否可以列舉

object.

defineproperties

(obj,

, b:})

for(

const prop in obj)

// 無輸出

writable是否可以重新賦值

const obj =

;object.

defineproperty

(obj,

"a",

)obj.a =

100;

console.

log(obj)

//

object.defineproperty()中的儲存器get()set()方法,設定屬性值是觸發set()方法,獲取屬性值是觸發get()方法。

object.

defineproperty

(obj,

'a',

,set

(val)})

obj.a =10;

// 設定了 a 屬性

console.

log(obj.a)

;// 檢視了 a 屬性

此時obj.a的值為undefined

屬性描述符

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

屬性描述符

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

物件屬性描述符

從 es5 開始,物件的屬性都具備了屬性的描述符,它能設定屬性的特性。我們可以使用 object.defineproperty 來新增或者配置乙個屬性並對它的特性進行配置。屬性有 writable enumerable 和 configurable 這三個或之一都為屬性描述符。一.writable ...