6个属性,有4没2,有2没4
通过defineporperty设置属性
var Person = {}
Object.defineProperty(Person, 'name',{})
Person.name = 'rose'
console.log(Object.getOwnPropertyDescriptor(Person, 'name'))
// {
// value: undefined,
// writable: false,
// enumerable: false,
// configurable: false,
// }
console.log(Person.name) // undefined
通过.设置属性
var Person = {
a : 1
}
Object.defineProperty(Person, 'a',{})
console.log(Object.getOwnPropertyDescriptor(Person, 'a'))
// {
// value: 1,
// writable: true,
// enumerable: true,
// configurable: true,
// }
通常用法
var Person = {a : 1}
_val = 0
Object.defineProperty(Person, 'a',{
get () {
return _val
},
set (newval) {
_val = newval
}
})
Person.a = 10
console.log(Person.a) // 10