写代码的过程中发现,将原数组赋值给新数组时,改变新数组中对象的属性,原数组对象属性也会随之改变,后查过资料发现是引用传递问题
https://blog.csdn.net/df981011512/article/details/72865228
大佬博主原文章,十分感谢
总结方法
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
</body>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript">
var a = [1,2,3];
var b = [];
// 使用此方法会改变原数组值
//b = a;
// 使用extend方法,方法一
//$.extend(true,b,a)
// 使用json,方法二
b = JSON.parse(JSON.stringify(a))
b[1] = 200
console.log(a)
console.log(b)
</script>
</html>
$.extend语法
$.extend( [deep ], target, object1 [, objectN ] )
deep | 可选。 Boolean类型 指示是否深度合并对象,默认为false。如果该值为true,且多个对象的某个同名属性也都是对象,则该"属性对象"的属性也将进行合并。 |
target | Object类型 目标对象,其他对象的成员属性将被附加到该对象上。 |
object1 | 可选。 Object类型 第一个被合并的对象。 |
objectN | 可选。 Object类型 第N个被合并的对象。 |
target是要被赋值的对象
如果大佬们有其他方法,希望能不吝赐教