Object.defineProperty 相关学习
Object.defineProperty 学习
- 描述:
- 方法直接在对象上定义一个新属性,或修改对象上的现有属性
- 并返回该对象。该方法允许精确地添加或修改对象上的属性;
- 语法:
- Object.defineProperty(obj, prop, descriptor)
- obj
必需。目标对象 - prop
定义或者修改的属性名称 - descriptor
对要定义或者修改的属性的描述
- obj
- Object.defineProperty(obj, prop, descriptor)
- descriptor 目标属性所拥有的特性配置项
- configurable:true | false,
- 是否可以删除目标属性或是否可以再次修改属性的特性(writable, configurable, enumerable)。
- 设置为true可以被删除或可以重新设置特性;
- 设置为false,不能被可以被删除或不可以重新设置特性。
- 默认为false。
- enumerable:true | false,
- 此属性是否可以被枚举(使用for...in或Object.keys())。
- 设置为true可以被枚举;
- 设置为false,不能被枚举。
- 默认为false。
- value:任意类型的值,
- 属性对应的值,可以使任意类型的值,
- 默认为undefined
- writable:true | false
- 属性的值是否可以被重写。
- 设置为true可以被重写;
- 设置为false,不能被重写。
- 默认为false。
- 存储器描述
- 注意:
- 1. 当使用了getter或setter方法,不允许使用writable和value这两个属性
- 2. get或set不是必须成对出现,任写其一就可以。如果不设置方法,则get和set的默认值为undefined
- set :function (value){} | undefined
- 是一种设置属性值的方法
- 当设置值的时候触发的函数,设置的新值通过参数value拿到
- get :function (){} | undefined
- 当获取值的时候触发的函数
- 通过返回值设置
- 注意:
- configurable:true | false,
<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">