let a={a:1}let b={b:2}let c={c:3}
console.log(Object.assign(a,b,c))
//{ a: 1, b: 2, c: 3 }
浅拷贝:也叫引用拷贝,公用一块内存地址,一个改变另一个也改变;
深拷贝:创建新的内存地址保存值,与原对象完全独立。
深拷贝和浅拷贝只针对复杂的复杂的对象有差别;
注意:针对object.assign()而言,如果属性值是简单类型(number,string),通过object.assign({},src)得到的新对象是深拷贝对象;如果属性值为对象或其他引用类型,得到的新对象为浅拷贝对象。
使用JS中的typeof方法来判断,代码如下:<script type="text/javascript">
var obj={"name":"aaa"}
if( typeof(obj)=="object" ){
alert("它是object");
}
</script>
js调试中经常会碰到输出的内容是对象而无法打印的时候,光靠alert只能打印出object标示,却不能打印出来里面的内容,甚是不方便,于是各方面整理总结了如下一个函数,能够将数组或者对象这类的结果一一打印出来,具体代码如下:function writeObj(obj){ var description = ""for(var i in obj){ var property=obj[i]description+=i+" = "+property+""} }
另外当你需要将object对象转换为string字符串。