Object.assign 合并多个JavaScript的对象
常规用法,以及一些注意事项和说明:
- ES6新添加的接口
- 语法:Object.assign(target,source1,source2,source3);
- 属于浅拷贝——>拷贝过来的只是一个引用
- 对象合并时,一旦碰到对象里同名属性,就会出现后面对象中的属性覆盖前面对象中的属性现象
示例
一般按如下方式写
var source1 = {
m:'front',
subm:'money_sign',
action:'init',
};
var source2 = {
account_id:'afb12',
mp_id:'3'
}
var obj = Object.assign({}, source1, source2);
console.log(obj);
// {m: "front", subm: "money_sign", action: "init", account_id: "afb12", mp_id: "3"}
其余用法
Object.assign 是针对Object开发的API,不仅实现简单的多个对象的合并,还可以为对象添加属性、方法等
- 为对象添加属性
这里写代码片
- 为对象添加方法
function sometest (){ }
// 方法也是对象
// 将两个方法添加到类的原型对象上
// 类的实例会有这两个方法
Object.assign(sometest.prototype,{
test1(arg1,arg2){
console.log('this is method one='+arg1);
console.log('this is method one='+arg2);
},
test2(){
console.log('this is method two');
}
});
sometest.prototype.test1('haode','2')
sometest.prototype.test2()
console.log(sometest.prototype)
结果:
this is method one=haode
this is method one=2
this is method two
{test1: ƒ, test2: ƒ, constructor: ƒ}
test1: ƒ test1(arg1, arg2)
test2: ƒ test2()
constructor: ƒ sometest()__proto__: Object
ƒ Object() { [native code] }