所有的面向对象的语言中,都存在着对象引用、复制等等问题,对于初学者来说可能难以理解。今天我来总结一下JavaScript中对象复制。
首先我们要知道JavaScript中的数据分为基本类型(单类型)和引用类型。除了Object对象,其余都是基本类型例如我们常见的String、Number、boolean、null、undefined。而数组、时间对象以及我们自定义的对象等等,都是继承自Object的,所以说都是引用类型。
在js中对对象进行赋值时,基本类型会被直接复制,例如下:
let a = 1;
let b = a;
b = 2;
console.log(a);
console.log(b);
效果:
可见a,b都是number基本类型,直接赋值就把a复制给了b,改变b并不改变a。
同样可以看这个:
function ch(num) {
num = num + 10;
}
let a = 1;
console.log(a);
ch(a);
console.log(a);
结果&#x