Object.assign 合并多个JavaScript的对象

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] }

猜你喜欢

转载自blog.csdn.net/qq_29954811/article/details/81478707