Object defineProperty属性详解
- Object.defineProperty(obj,prop,descriptor)是es5的
- 它会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性, 并返回这个对象。
- 参数
obj:必需。目标对象
prop:必需。需定义或修改的属性的名字
descriptor:必需。目标属性所拥有的特性 - descriptor参数的属性
value:属性值
writable:是否可写
enumerable:是否可枚举
Configurable:表示能否通过delete删除属性从而重新定义属性 - 当用Object.defineProperty定义一个新属性时候他的writable、enumerable、Configurable默认是关闭的;当用它修改一个现有属性是这些值是默认开启的;
- 使用存取描述符get、set
获取属性值的时候会进入get方法
赋值属性值时会进入set方法
- Object.defineProperties可以去批量定义修改多个属性