js原生封装深拷贝

js原生封装深拷贝 运用递归

 function deepClone(newObj, obj) {
                for (var key in obj) {
                    if (obj[key] instanceof Array) {
                        newObj[key] = [];
                        deepClone(newObj[key], obj[key]);
                    } else if (obj[key] instanceof Object) {
                        newObj[key] = {};
                        deepClone(newObj[key], obj[key]);
                    } else {
                        newObj[key] = obj[key];
                    }
                }

                return newObj;
            }

            var obj = {
                name: '奥利给',
                age: 18,
                hobbies: ['吃饭', '睡觉', '打豆豆', '写代码'],
                skiis: {
                    sing: '鸡你太美',
                    dance: 'giao',
                    eat: {
                        fruits: ['apple', 'banana', 'orange'],
                    },
                },
            };
            var newObj = {};
            var res = deepClone(newObj, obj);
            console.log(res);

猜你喜欢

转载自blog.csdn.net/weixin_47346395/article/details/107172086