console.log('.......obj1.........')
// 第一种设置对象的存取器属性
var obj1 = {
a:1,
b:2,
// c为存取器属性
set c(x){
this.b = x
console.log('设置c的值:',x)
},
get c(){
console.log('获取c的值:',this.b)
return this.b
}
}
obj1.c = '124'
obj1.c
console.log('obj1',Object.getOwnPropertyDescriptor( obj1 , 'c' ))
console.log('.......obj2.........')
// 第二种设置对象的存取器属性
var obj2 = {
a:1
}
obj2.__defineGetter__('c',function(){
console.log('获取c的值:',this.a)
return this.a
})
obj2.__defineSetter__('c',function(x){
this.a=x
console.log('设置c的值',x)
})
obj2.c = 23
obj2.c
console.log('obj2',Object.getOwnPropertyDescriptor( obj2, 'c' ))
// 第三种设置对象存取器属性
var obj3 = {
a:1
}
Object.defineProperty(obj3,'c',{
get:function(){
console.log('第三种方式获取c的值:',this.a)
return this.a
},
set:function(x){
this.a = x
console.log('第三种方式设置c的值:',x)
},
enumerable:true,
configurable :false
})
console.log('.......obj3.........')
obj3.c = 33
obj3.c
console.log('obj3',Object.getOwnPropertyDescriptor( obj3 , 'c' ))