js defineProperty 定义一个属性
方法
Object.defineProperty(obj, prop, descriptor)
obj
,待修改的对象prop
,带修改的属性名称descriptor
,待修改属性的相关描述
{ configurable: false, enumerable: false, writable: false, value: null, set: undefined, get: undefined }
- configurable ,属性是否可配置。可配置的含义包括:是否可以删除属性( delete ),是否可以修改属性的 writable 、 enumerable 、 configurable 属性。
- enumerable ,属性是否可枚举。可枚举的含义包括:是否可以通过 for...in 遍历到,是否可以通过 Object.keys() 方法获取属性名称。
- writable ,属性是否可重写。可重写的含义包括:是否可以对属性进行重新赋值。
- value ,属性的默认值。
- set ,属性的重写器(暂且这么叫)。一旦属性被重新赋值,此方法被自动调用。
- get ,属性的读取器(暂且这么叫)。一旦属性被访问读取,此方法被自动调用。