js对象引用拷贝

<script type="text/javascript">
            var obj={
                a:{
                    b:10
                }
            }
            function copy(obj){
                if(typeof obj !=="object"){
                    return obj;
                }
                var newobj={};
                console.log(newobj);  
                for(var attr in obj){
                    newobj[attr]=copy(obj[attr]);
                }
                return newobj;
            }
            copy(obj);
            
        </script>

图片描述
console出来的newobj第一次为什么是一个obj对象的引用,不应该是一个空对象么?..有点晕

阅读 3.2k
2 个回答

浏览器不同实际不同。有时候浏览器控制台显示出来的对象是当前的属性而不是程序时执行那到个位置的属性。你可以试试输出 JSON.stringify(newobj, null, 4) 来输出看看,这个应该是当时的 JSON

我在控制台执行显示正常

图片描述

推荐问题