值传递与引用传递

值传递
引用传递

复制数组

var a = [1, 2, 3, 4];
var b = [].concat(a);

复制对象

let obj = {a: 'a', b: 'b', c: 'c'};
let clone1 = Object.assign({}, obj);
//使用扩散操作符
let clone2 = {...obj}

深克隆
对象里面还有对象

let obj = {
  a: 'a',
  b: 'b',
  c: {
    deep: 'this is deep'
  }
}

let superClone = JSON.parse(JSON.stringify(obj))