js中克隆详解
再讨论js克隆之前,我们先来回忆一下js的数据类型。
基本数据类型:数值型、字符串型、布尔型、null、undefined。
引用数据类型:函数、数组、对象(因为万物皆对象,所以也可以说引用数据类型只有object)
1.克隆对象是基本数据类型我们可以直接赋值给需要的变量即可
<script>
var a=10;
var b=a;
console.log(a); //10
console.log(b); //10
b=520;
console.log(a); //10
console.log(b); //520
</script>
运行结果如下:
2.克隆对象是引用数据类型则不能直接复制
<script>
var a=[1,2,3];
var b=a;
b.push(520); //使用push向b数组末尾添加一个元素,但会发现a,b数组都添加了
console.log(a); //[1,2,3,520]
console.log(b); //[1,2,3,520]
</script>
运行结果如下:
<script>
var a={
name:"Roddy",age:21};
var b=a;
b.age=18; //修改b对象的age属性,但a对象的age属性也随之变化
console.log(a); //{name: "Roddy", age: 18}
console.log(b); //{name: "Roddy", age: 18}
</script>
运行结果如下: