Object.defineProperty()方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性(属性为响应式属性),并返回此对象。
语法:
Object.defineProperty(obj, prop, descriptor)
obj要定义属性的对象。
prop要定义或修改的属性的名称或 descriptor要定义或修改的属性描述符。
get:
属性的 getter 函数,如果没有 getter,则为 undefined。当访问该属性时,会调用此函数。执行时不传入任何参数,但是会传入 this 对象(由于继承关系,这里的this并不一定是定义该属性的对象)。该函数的返回值会被用作属性的值。
默认为 undefined。
set:
属性的 setter 函数,如果没有 setter,则为 undefined。当属性值被修改时,会调用此函数。该方法接受一个参数(也就是被赋予的新值),会传入赋值时的 this 对象。
默认为 undefined。
Object.defineProperty(person,'age',{
四个配置项:value enumerable writable configurable
// value:18, //给属性添加值
// enumerable:true, //控制属性是否可以枚举,默认值是false