需要达到这样子的一个需求:
编辑框需要元素有:时间选择器,文本框,一个下拉选择组
需要每次离开页面时候判断时候和初始值一致,若不一致则跳出提示是否需要保存。
一开始我的想法是 so easy!这次估计自己很快完美完成任务了(心里窃喜=W=)。
一顿操作后的我:设定初始值 A 和数据 B 作对比,两者一开始都是由 C 赋值的。**但是后面 B 每次改动 A 部分数据也对应改动,没有达到可以对比的目的。**部分代码如下:
我十分疑惑,为什么 A 也会跟着 B 一起改变?我没有在这里之外的地方赋值过了(一头雾水)
后续问了小伙伴才知道这里还涉及到了 JS 浅拷贝和深拷贝 的知识点了
因为我上图中的 points
是一个对象,直接赋值的话是赋值地址过去的。
我一开始给 A 和 B 都直接赋值,其实这时候就是把 C 的地址直接给了这两个玩意儿了!!!
那 B 改变时候 A 当然也跟着改变呀,因为是指向 C 的地址。
对于我现在的情况来说,只是一层 的 Object [{key: '', type: ''},{key: '', type: ''}]
,用浅拷贝就好了~浅拷贝包括 Object.assign
(