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 物件 可以得到某...