Array.prototype.CopySelf = function (){ let arr = new Array() for(let i in this){ arr[i] = this[i] } return arr } var p1 = { "id":"007", "name":"刘德华", "books":new Array("三国演义","红楼梦","水浒传")//这是引用类型 } function copy(obj){ let newObject= {} for(let key in obj){ if(typeof obj[key] === 'object'){ newObject[key] = obj[key].CopySelf() }else{ newObject[key] = obj[key] } } return newObject } let a = copy(p1) p1.id = '123' p1.books[2] = 'ding' console.log(p1) console.log(a)