js实现一个浅拷贝
浅拷贝的实现方法
浅拷贝是指创建一个新对象,复制原始对象的属性值。如果属性是基本类型,拷贝的是值;如果属性是引用类型,拷贝的是内存地址。以下是几种常见的实现方法:
方法1:使用展开运算符(...)
const original = { a: 1, b: { c: 2 } };
const copy = { ...original };
方法2:使用Object.assign()
const original = { a: 1, b: { c: 2 } };
const copy = Object.assign({}, original);
方法3:手动遍历属性
function shallowCopy(obj) {
const result = {};
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
result[key] = obj[key];
}
}
return result;
}
const original = { a: 1, b: { c: 2 } };
const copy = shallowCopy(original);
注意事项
浅拷贝只复制对象的第一层属性。如果对象包含嵌套对象,嵌套对象仍然是引用关系,修改嵌套对象的属性会影响原始对象。
const original = { a: 1, b: { c: 2 } };
const copy = { ...original };
copy.b.c = 3;
console.log(original.b.c); // 输出3
如果需要完全独立的副本,应考虑使用深拷贝方法。







