var fun = function() {} var anObj = { a: 'e'} var anArr = [] var obj = { a: 2, b: anObj, c: anArr, d: fun } anArr.push(anObj, obj) var assignObj = Object.assign({}, obj); // var deepObj = JSON.parse(JSON.stringify(obj)); obj.a = 3 obj.c.push(4) obj.b.a = 'wangbaoqi' console.log(assignObj.b.a) // console.log(deepObj.a)