数据描述
当修改或定义对象的某个属性的时候,给这个属性添加一些特性:
var obj = { test:"hello" } //对象已有的属性添加特性描述 Object.defineProperty(obj,"test",{ configurable:true | false, enumerable:true | false, value:任意类型的值, writable:true | false }); //对象新添加的属性的特性描述 Object.defineProperty(obj,"newKey",{ configurable:true | false, enumerable:true | false, value:任意类型的值, writable:true | false });
属性说明
value 属性对应的值,可以使任意类型的值,默认为undefined
writable 属性的值是否可以被重写。设置为true可以被重写;设置为false,不能被重写。默认为false。
enumerable 此属性是否可以被枚举(使用for...in或Object.keys())。设置为true可以被枚举;设置为false,不能被枚举。默认为false。
configurable 目标属性是否可以使用delete删除,目标属性是否可以再次设置特性
getter/setter 当设置或获取对象的某个属性的值的时候,可以提供getter/setter方法。如果不设置方法,则get和set的默认值为undefined