语法Object.defineProperty()
该方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象
语法:Object.defineProperty(obj, prop, descriptor)
-
参数 obj:要定义属性的对象
-
参数 prop:要定义或修改的属性的名称
-
参数 descriptor:要定义或修改的属性描述符
描述符:
-
configurable:可配置性,表示能否修改属性的特性( 比如 delete obj.key )。默认值为 false
-
enumerable:可枚举性,表示能否通过 for in 循环访问属性,默认值为 false
-
writable:可读写性:表示能否修改属性的值。默认值为 false
-
value:包含这个属性的数据值。默认值为 undefined
-
get:属性的 getter 函数,如果没有 getter,则为 undefined。当访问该属性时,会调用此函数
-
set:属性的 setter 函数,如果没有 setter,则为 undefined。当属性值被修改时,会调用此函数