Object.defineProperty()方法学习笔记
这是中一个非常重要的方法,es6中某些方法的实现依赖于它,Vue通过他实现双向绑定
此方法可以再对象上创建一个新属性或者修改一个已经存在的属性,并放回这个对象
参数
Object .defineProperty中的参数有3个
object :目标对象
attribute :需要定义的属性或者方法
descriptor:目标属性所拥有的特性
descriptor
共有六个属性标识符,它们分别是:
value:属性的值,如果当前没有该属性,则会创建该属性。
writable:(boolean) 属性是否可修改,决定了属性的值是否会被修改。
configurable:(boolean)属性是否可再配置,如果configurable设置成false,则不可再配置改属性
enumerable:(boolean)定义了对象的属性是否可以在for…in循环和Object.keys()中被枚举
set:当给属性赋值的时候会调用该方法
get:当获取属性时,会调用该方法
注意点
- 当用set给不存在的属性赋值时,将会报错,而用value赋值时,则会新建该属性。