//#理解数据属性以及访问器属性
//1
const obj=Object.create(null)
Object.defineProperty(obj,‘name’,{
writable:true,
configurable:true,
writable:true,
value:‘LIU’
})
// obj.name=‘1111’//这里报错,因为name属性的特性writable被设置成为了不可改变
Object.defineProperty(obj,‘xingming’,{
get(){
return this.name
},
set(value){
this.name=value
}
})
//打印的时候可以得到xingming属性的值是因为调用了get方法,这里理解xingming这个属性书不存在value的,他的值只能又get经过
// 计算得到
console.log(obj)
//2
//确认一个问题,当一个对象有get,转给其他人之后会不会触发?(不会,返回的是对象)
const obj={
B:{}
}
Object.defineProperty(obj,“A”,{
get:()=>{
return obj.B
},
set:(A)=>{
obj.B=A
}
})
console.log(obj);
obj.A={
‘AAA’:1
}
//给的是数据的引用,这里会串数据
const c=obj.A
c.A=2222
console.log(obj);