JS属性描述符
先给大家介绍一个系统函数 -->Object.ownPropertyDescriptor(OBJECT,“PROPERTY”)
这个函数是获取一个对象的属性的描述对象,这个函数的第一个参数是对象,第二个是属性
这个函数会返回一个对象,里面有6个属性
{
configure:true/false,
enumerable:true/false,
value:‘frefre’,
writable:true/false,
set:function(){}, ‘这项设置后,这个属性编变成存储器属性’
get function(){} ‘这项设置后,这个属性编变成存储器属性’
}
cingifure属性:
这个属性表示对象属性的对象属性是否可以被修改
enumerable属性:
这个属性表示这个对象是否可以使用for-in进行枚举,以及Object.keys(),Object.values()都不会得到对应的结果
value属性:
属性的值
writable属性:
表示对象的属性值是否可以被修改,这里要和上面的configure属性区分开,这里指的是对象的属性值是否可以被修改,configre属性指的是对象属性的属性是否可以被修改。
set属性
这个属性值是函数,这个属性设置后,该对象属性变成存储器。设置了set属性后,当程序对该对象属性赋值时是就执行set函数,JS中元素的 innerHTML和vue的双向绑定就是利用这个原理实现的
get属性:
这个属性值是个函数,这个属性设置后,该对象属性变成存储器。设置了set属性后,当程序读取该属性时是就执行get函数,JS中元素的 innerHTML和vue的双向绑定就是利用这个原理实现的
好了,介绍完了前面的Object.ownPropertyDescriptor函数之后,我们要开始介绍下一个函数了,
Object.defineProperty(OBJECT,‘PROPERTY’,{DESCRIPTOR})
该属性可以定义一个对象的属性的属性,configure属性,enumerable属性,value属性,writable属性,set属性,get属性