<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
对象的引用,不应该是一个空对象么?..有点晕
浏览器不同实际不同。有时候浏览器控制台显示出来的对象是当前的属性而不是程序时执行那到个位置的属性。你可以试试输出
JSON.stringify(newobj, null, 4)
来输出看看,这个应该是当时的 JSON