vue 对象拷贝

2018-09-26  本文已影响0人  丰起云啸

先说几种情况的对象拷贝

1.“=” 赋值方法

let a={b:’2‘,c:‘3’}

let e=a

e.b='5'

结果

a.b="5"

改变了原来的值

2.Object.assign({},val)  对象拷贝

let a={name:"张三"}

let b=Object.assign({},a)

 b.name="wangwu"

//a.name="张三"

但是当

let a = {name:{firstName:'wang',lastName:'er'}}

let b=Object.assign({},a)

b.name.firstName="wangwu"

a.name.firstName="wangwu"   //又回来了

这是为什么呢?

这是因为object.assign是浅拷贝当,b.name是个栈 对象的引用 b.name.firstName   a.name也是栈对象的引用 一改都改

上一篇下一篇

猜你喜欢

热点阅读