0216tool_xiaoye
Version:
叶永洁自定义工具函数库
31 lines (30 loc) • 1.12 kB
HTML
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>对象/数组拷贝</title>
</head>
<body>
<script src="../dist/yeyongjie.js"></script>
<script>
/**
* 1. 区别浅拷贝与深拷贝
纯语言表达:
浅拷贝: 只是复制了对象属性或数组元素本身(只是引用地址值)
深拷贝: 不仅复制了对象属性或数组元素本身, 还复制了指向的对象(使用递归)
举例说明: persons拷贝
浅拷贝: 只是拷贝了每个person对象的引用地址值, 每个person对象只有一份
深拷贝: 每个person对象也被复制了一份新的
*/
let p = {a:[1,2],b:'B'}
let p2 = xiaoYe.clone1(p)
console.log(p2,p===p2,p.a===p2.a) //false true
let a = {a:{b:[12]}, b:[{b:'B'}]}
let a2 = xiaoYe.clone1(a)
console.log(a2,a===a2, a.a.b === a2.a.b)//false true
a.a.b = "1"
console.log(a.a.b, a2.a.b)
</script>
</body>
</html>