yes-liu
yes-liu
很感谢您的分享。另外,我认为您递归方法的深拷贝代码中,第六行代码是不必要的,因为该方法是递归啊,和第二行代码相比,它就是冗余代码了。
关于Object.assign(target, sources)方法,将源对象的属性值复制给目标对象,如果属性值是对象的引用,那么复制的属性值也是对象的引用。结合对象的扩展运算符...是首层浅拷贝,而...实质上是Object.assign({}, sources)的变形,我自己写个例子,我现在非常困惑。 > const originObj = { c: [1,2,3], d: {dd:'dd'}} const cloneObj = Object.assign({}, originObj) cloneObj.c = 'cell' cloneObj.d.dd = 'double' console.log('cloneObj', cloneObj); //{c:"cell", d:{dd:"double"}} console.log('originObj', originObj); //{c:[1,2,3],...
> > > 关于Object.assign(target, sources)方法,将源对象的属性值复制给目标对象,如果属性值是对象的引用,那么复制的属性值也是对象的引用。结合对象的扩展运算符...是首层浅拷贝,而...实质上是Object.assign({}, sources)的变形,我自己写个例子,我现在非常困惑。 > > > const originObj = { c: [1,2,3], d: {dd:'dd'}} > > const cloneObj = Object.assign({}, originObj) > > cloneObj.c = 'cell' >...