Object.assign()方法是Object对象的一个静态方法,可以将一个或多个源对象的可枚举值拷贝到目标对象,实现对象的拷贝或者扩展。在jquery中也存在一个跟它类似的方法:$.extend(),也是用来对对象进行拷贝扩展的。
Object.assign()对象使用方式很简单:
var obj={ width:"100%", height:"100%", size:true, inline:false } var obj2={ title:"mooshine平行线", origin:true, absolute:true, width:"80%" } var target=Object.assign(obj,obj2); console.log(target); console.log(obj);
打印结果如下:
Object.assign()的语法是:
Object.assign(target,source1,source2,....);
它的第一个参数是目标对象,第2个至第n个参数是源对象,assign方法返回的结果是target对象,所以打印的target和obj的内容相同,他们是同一个对象。
同时assign方法拷贝的是属于对象自身的可枚举值,不涉及原型上的值。
Object.assign()方法不兼容IE,它的兼容性如下:
由于不兼容IE,所以我们不能再PC端使用,又因为它不兼容andriod,所以我们也不能再移动端使用,除了使用特定浏览器的项目页面中,我们可以使用Object.assign方法来替代$.extend方法外,我们几乎不能使用这个方法。在目前看来这个Object.assign()方法是没有用武之地的,所以对它,就权做了解罢了,当然如果你使用babel等转码ES6的js文件中倒是可以使用。