JS:如何去拷贝对象(*****五颗星)
1.如何去拷贝对象?
浅拷贝和深拷贝
浅拷贝 : 只是将数据中所有的数据引用下来,依旧指向同一个存放地址,拷贝之后的数据修改之后,也会影响到原数据的中的对象数据。
深拷贝: 将数据中所有的数据拷贝下来,对拷贝之后的数据进行修改不会影响到原数据。
2.浅拷贝方法
1.for in实现(Symbol类型不可以拷贝)
将父对象的属性,通过赋值拷贝给子对象。
function copy(origin) { let target = {}; for (let i in origin) { target[i] = origin[i]; } return target; }
2.Object.assign实现(Symbol类型也可以拷贝)
Object.assign方法用于对象的合并,将源对象的所有可枚举属性,复制到新的目标对象。
let target = Object.assign({}, origin);
3.扩展运算符(Symbol类型也可以拷贝)
ES2018 中将...扩展运算符引入了对象。于是实现浅拷贝的语法更为简单。
let target = { ...origin };
4.以上的几种方法只拷贝了对象的实例属性,若还想拷贝对象的原型属性,可以有以下几种方法:
// 方法一 let target1 = { __proto__: Object.getPrototypeOf(origin), ...origin, } // 方法二 let t
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
前端面试题 文章被收录于专栏
前端面试的一些常问问题、问题的具体实现(可直接运行)以及底层原理