一、Object.defineProperty()
Object.defineProperty()
方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象。
二、语法
Object.defineProperty(obj, prop, descriptor)
参数
-
obj
要定义属性的对象。
-
prop
要定义或修改的属性的名称或 Symbol 。
-
descriptor
要定义或修改的属性描述符。
返回值
被传递给函数的对象。
Object.defineProperty(person,'age',{
// value:18,
// enumerable:true,//控制属性是否可以枚举 默认值是false
// writable:true, //控制属性是否可以修改 默认值是false
// configurable:true//控制属性是否可以被删除 默认值是false
// 当有人读取person的age属性时 get函数(getter)就会被调用 且返回值就是age的值
// get:function()可简写为 get()
get:function(){
return number
},
// 当有人修改person的age属性时 set函数(setter)就会被调用 且会收到修改的具体值
set:function(value){
number = value
}
})
console.log(Object.keys(person));//遍历person对象