引言
呜呜呜坑死我了
Object.assign
在项目中,我compute
引用$store
里面的数据,但是发现没有办法实时更新??,当时觉得就很奇怪,疯狂谷歌也找不到答案,后来将Object.assign
换成了“=”
,发现可以了emmm
原因是这样的:
Object.assign reads the value of the property from the source object, it doesn’t copy getters/setters
来自stackOverflow
后来我自己又再 试了一下,发现真的是这样,怎么感觉和官方文档有点差异,所以先记在这里一下:
var a={
sub:{}
};
var initSub={};
Object.defineProperty(a,'sub',{
get(){
console.log("触发了getter");
return initSub;
},
set(newValue){
console.log('触发了settter');
initSub=newValue;
}
})
console.log(a.sub);//触发了getter {}
Object.assign(a.sub,{1:2,2:3});//触发了getter
console.log(a.sub);//触发了getter { '1': 2, '2': 3 }
希望大佬们帮我指正一下万分感谢~~