// 深拷贝函数的实现
function deepClone(obj) {
    // 如果不是对象或者为null,直接返回
    if (obj === null || typeof obj !== 'object') {
        return obj;
    }
    // 初始化新对象或数组
    let clone = Array.isArray(obj) ? [] : {};
    // 遍历对象或数组的所有属性
    for (let key in obj) {
        if (obj.hasOwnProperty(key)) {
            // 递归调用深拷贝函数
            clone[key] = deepClone(obj[key]);
        }
    }
    return clone;
}
// 示例代码
let originalObj = {
    name: "Alice",
    age: 25,
    hobbies: ["reading", "swimming"],
    address: {
        city: "Beijing",
        country: "China"
    }
};
let clonedObj = deepClone(originalObj);
console.log(clonedObj); // 输出克隆后的对象
console.log(clonedObj === originalObj); // false,证明是深拷贝
console.log(clonedObj.hobbies === originalObj.hobbies); // false,证明数组也被深拷贝了
console.log(clonedObj.address === originalObj.address); // false,证明嵌套对象也被深拷贝了deepClone 函数:这是一个递归函数,用于创建对象的深拷贝。它会遍历对象的所有属性,并对每个属性进行深拷贝。Array.isArray 判断是否为数组,确保正确地初始化新的数组或对象。deepClone 函数,确保所有嵌套的对象和数组都被深拷贝。deepClone 函数,并验证了深拷贝的效果。上一篇:js 深拷贝方法
下一篇:js 深拷贝对象
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站