深拷贝:
ES6深拷贝最简单的方法:
JSON.parse(JSON.stringify(obj))
因为字符串转成对象之后就是一个新的对象了,obj相当于一个新的对象了。
浅拷贝:
- 结构赋值
- Object.assign()
- for in
- Object.keys()
<template>
<div>
</div>
</template>
<script>
export default {
data(){
return{
obj:{
name:'liyaya',
age:18,
adress:{
one:'dazhailu',
two:'kunminglu'
},
color:['red','green','blue']
},
copya:{},
copyb:{},
copyc:{},
copyd:{},
copye:{},
copyf:{},
}
},
mounted(){
this.init()
},
methods:{
init(){
this.copyf = {...this.obj}
for(var k in this.obj){
this.copya[k] = this.obj[k]
}
this.obj.name = 'hahaha'
Object.keys(this.obj).forEach(item=>{
this.copyb[item] = this.obj[item]
})
Object.assign(this.copyc,this.obj)
this.copyd = this.obj
this.copye = JSON.parse(JSON.stringify(this.obj))
console.log(this.obj);
}
}
}