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.1k
2 个回答

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

我在控制台执行显示正常

图片描述

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题