我们都知道javascript有五种基本数据类型,分别是Null,String,Boolean,Number,Undefined。
基本类型为字面量为null,string,boolean,number,undefined的变量。
复制
复制针对的是基本类型。
基本数据类型存在栈中有固定大小,复制会产生一个副本,只见没有关系。
var a = 12;
var b = a;
console.log(a); //12
console.log(b); //12
b = 10;
console.log(a); //12
console.log(b); //10
从例子中发现复制会产生一个原有数据的副本,在新创建的内存空间中,互不影响。
引用
引用针对的是对象,就是通过new创建出来的对象,存储在堆中。
var a = {name:'Joho'}
var b = a;
console.log(a.name); //Joho
console.log(b.name); //Joho
b.name = 'Tom';
console.log(a.name); //Tom
console.log(b.name); //Tom
从例子发现当var b = a
时,b和a指向了同一块内存,对b进行修改的a也会进行改变,当然若对a进行修改b肯定也会相应的改变。