谈Object.definedProperty()中的getter与setter个人理解就先介绍一下Object.definedProperty()
Object.definedProperty()方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象。在vue2.x中用来实现数据双向绑定
语法:
Object.defineProperty(obj, prop, descriptor)
obj 在其上定义或修改属性的对象。
props 要定义其可枚举属性或修改的属性描述符的对象。对象中存在的属性描述符主要有两种:数据描述符和访问器描述符(更多详情,请参阅Object.defineProperty())。描述符具有以下键:
configurable 为true时 当且仅当该属性描述符的类型可以被改变并且该属性可以从对应对象中删除。默认为 false
enumerable 为为true时 当且仅当在枚举(for in 或者 Object.keys())相应对象上的属性时该属性显现。默认为 false
value 与属性关联的值。可以是任何有效的JavaScript值(数字,对象,函数等)。默认为 undefined.
writable 为true时,当且仅当与该属性相关联的值可以用assignment operator改变时。默认为 false
get 作为该属性的 getter 函数,如果没有 getter 则为undef