把一个对象赋值给另一个对象(数组也是对象),实际上并不是新建一个和原对象完全一样的对象,而是把原对象的内存地址直接复制给另一个对象,也就是说两个对象都是指向同一个内存地址,实际上就是同一个对象,就像把同一个房子的钥匙复制两把,小偷用a钥匙进去把东西洗劫一空,你用b钥匙进去不可能东西原封不动吧?
所以,要想在数组a的基础上新建一个数组b,不能想当然地用b=a,而应该先新建一个空数组b,再把a的每个元素逐个复制到b中!
var a=[1,2,3,4,5];
var b=a.slice(0);
b.push(6);
console.log(a,b);