用途
- 给一个 对象 定义一个新的 属性 或者修改一个 对象 现有的 属性,并返回这个对象。
语法
- Object.defineProperty(参数1,参数2,参数3)
- 参数1:目标对象
- 参数2:要修改或添加的 属性名称
- 参数3:目标对象属性 的一些特征(是一个对象)
- 参数1:
- value:属性值
- 参数2:
- writable:对象属性值是否可以被修改----true允许----false不允许
- 参数3
- configurable:对象属性是否可以被删除----true允许----false不允许
- 参数4
- enumerable:对象是否可以被枚举
- 参数5
- get():给一个属性提供getter方法,当访问这个对象的属性值时触发该方法。
- 参数6
- set():给一个属性提供setter方法,当设置属性值的时候触发该方法。
- 参数1:
for in && Object.keys()的区别
- Object.keys():返回一个数组,数组值为对象自有的属性,不会包括继承原型的属性
- for in :遍历对象可枚举属性,包括自身属性,以及继承自原型的属性