JS :深拷贝解析与实现(附structuredClone语法测试)
// 深拷贝解析与实现示例
// 定义一个深拷贝函数
function structuredClone(obj) {
return new structuredClone.structuredClone(obj);
}
// 定义一个测试对象
const testObject = {
a: 1,
b: {
c: 2,
d: [3, 4]
}
};
// 测试深拷贝函数
const clone = structuredClone(testObject);
console.log(clone); // 输出: { a: 1, b: { c: 2, d: [ 3, 4 ] } }
// 修改原始对象并确认深拷贝对象不受影响
testObject.a = 100;
testObject.b.c = 200;
testObject.b.d.push(5);
console.log(testObject); // 输出: { a: 100, b: { c: 200, d: [ 3, 4, 5 ] } }
console.log(clone); // 输出: { a: 1, b: { c: 2, d: [ 3, 4 ] } }
// 注意: 实际的深拷贝实现可能需要递归地处理嵌套对象和数组,
// 并且需要考虑特殊的引用类型比如函数、Date、RegExp等。
// 这里的示例只是为了展示基本的用法。
这段代码定义了一个简单的structuredClone
函数,用于执行深拷贝操作。然后定义了一个测试对象,并使用该函数创建了一个对象的深拷贝。接下来,修改原始对象的属性,并验证深拷贝对象不受影响。这个例子旨在展示如何使用structuredClone
函数进行深拷贝操作,并提醒开发者深拷贝需要考虑到对象的所有引用。
评论已关闭