Object.assign改变了源对象,但被改变属性为字符串类型,并非对象类型。
所以就很奇怪,仔细了看代码,才发现问题所在:
原来是其他地方影响了源对象,比如
const a = reactive(sourceObj);
//a的变化,是会反映到sourceObj上的。
然后我之所以这么写,原本是为了在Vue中将sourceObj作为初始化对象,方便初始化复用。
但现在才知道,真正想要复用是需要加{}号的,不然sourceObj会受影响,因此这样写就没问题:
const a = reactive({sourceObj});