屬性描述符是乙個普通的物件中用來描述屬性的相關資訊。
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 ...