yanhaijing.github.io icon indicating copy to clipboard operation
yanhaijing.github.io copied to clipboard

深拷贝的终极探索

Open yanhaijing opened this issue 7 years ago • 9 comments

https://yanhaijing.com/javascript/2018/10/10/clone-deep/

yanhaijing avatar Oct 13 '18 08:10 yanhaijing

向前辈学习了,实际场景中还是用到clonsJSON比较多

TimRChen avatar Oct 17 '18 04:10 TimRChen

嗯嗯,解决问题就好,但是不妨碍我们深入研究 @TimRChen

yanhaijing avatar Oct 17 '18 04:10 yanhaijing

是的,学习了考虑引用这种情况...之前都没有这种意识

TimRChen avatar Oct 17 '18 04:10 TimRChen

相比 lodash 的cloneDeep 区别是什么? lodash的我测了下也没有破坏引用

fongfai avatar Nov 08 '18 07:11 fongfai

还想请问一下, 为什么在遍历属性的时候, 都使用 for...in... 后再使用hasOwnProperty判断. 直接使用Object.keys获取所有 对象自己的属性key数组可以得到同样的结果.

for(let k in data) {
            if (data.hasOwnProperty(k)) {

Yu-Rain avatar Apr 28 '21 08:04 Yu-Rain

@Yu-Rain 你说的对,我当初可能是出于兼容性(不确定了),确实用Object.keys更好,兼容性问题可以交给es5shim

yanhaijing avatar Apr 28 '21 09:04 yanhaijing

@Yu-Rain 可以搞个在线的demo来看看? https://codesandbox.io/dashboard 试试这个?

yanhaijing avatar Apr 28 '21 13:04 yanhaijing

@yanhaijing 好的, 下次我把代码放到这上面, 太着急忘记用在线的了🤦‍♂️ 突然发现自己的代码有问题😭

Yu-Rain avatar Apr 28 '21 13:04 Yu-Rain

@yanhaijing 不好意思, 把你文章下面的评论搞乱了, 如果能删除的话可以把我之前写的评论删掉. 我把之前的错误代码修改后 https://codesandbox.io/s/recursing-lamport-sij5m?file=/index.html

Yu-Rain avatar Apr 28 '21 14:04 Yu-Rain