引言
嗚嗚嗚坑死我了
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 }
希望大佬們幫我指正一下萬分感謝~~