面试题常考&必考之--js中的对象的浅拷贝和深拷贝(克隆,复制)(下)

这里主要是讲深拷贝:

深拷贝:个人理解就是拷贝所有的层级

1.像对象里再放数组和对象这些叫引用值。开始我们先判断大对象中是否有引用值(数组和小对象),

   然后在判断引用值是数组还是对象

面试题常考&必考之--js中的对象的浅拷贝和深拷贝(克隆,复制)(下)

 2.开始啦:

1》准备工作:

因为对象和数组的返回类型都是object。那么为了在区分它们:

如何判断一个Array:Object.prototype.toString.call()

利用对象的toString可以准确判断是什么类型,call()改变this指向

数组l类型:打印出来会是[Object Array]

所以这样就可以判断是不是数组

面试题常考&必考之--js中的对象的浅拷贝和深拷贝(克隆,复制)(下)

2》在遍历数据时 aaa:我们先剔除原型上的东西

          bbb:我们找到引用值(类型为object就是引用值)

        ccc:我们判断是数组还是对象

3.上代码和结果:(仔细看注释,细读)为了看的更清楚分两屏展示,自己敲代码  把右边的写在下满即可。

面试题常考&必考之--js中的对象的浅拷贝和深拷贝(克隆,复制)(下)

 面试题常考&必考之--js中的对象的浅拷贝和深拷贝(克隆,复制)(下)