Object对象方法(二)assign

188 阅读1分钟

javaScript Object对象中的assign方法

作用:拷贝复制一个对象到另一个对象当中

一、Object.assign(匿名对象, obj);

将obj的所有值赋值到匿名对象当中,如果有相同的值,则覆盖掉。

console.log("-".repeat(10) + "例1" + "-".repeat(10));
const obj1 = {
  age: 18,
  name: 'zg'
}

const obj2 = Object.assign({ grade: 'A', friends: ['lucy'] }, obj1);
console.log(obj1);
/*
  {
    "age": 18,
    "name": "zg"
  } 
*/
console.log(obj2);
/*
  {
    "grade": "A",
    "friends": [
        "lucy"
    ],
    "age": 18,
    "name": "zg"
  }
*/

二、Object.assign(obj1, obj2);

将obj2的内容赋值给obj1,返回obj1改变后的对象,此时obj内部已发生改变

console.log("-".repeat(10) + "例2" + "-".repeat(10));
const obj3 = {
  name: 'jam',
  age: 23,
  friends: ['lucy'],
  height: "1.88m"
}
const obj4 = {
  name: 'zg',
  age: 22,
  grade: 'A'
}
Object.assign(obj3, obj4);
console.log(obj3);
/*
  {
    "name": "zg",
    "age": 22,
    "friends": [
        "lucy"
    ],
    "height": "1.88m",
    "grade": "A"
  }
*/
console.log(obj4);
/*
  {
    "name": "zg",
    "age": 22,
    "grade": "A"
  }
*/

三、Object.assign(obj5, obj6, obj7);

将obj6、obj7对象中的内容全部赋值到obj5当中,相同的值同样会覆盖,返回修改后的值。

console.log("-".repeat(10) + "例3" + "-".repeat(10));
const obj5 = {
  a: 1
};
const obj6 = {
  b: 2
};
const obj7 = {
  c: 3
};
const obj8 = Object.assign(obj5, obj6, obj7);
console.log(obj5);
/*
  {
    "a": 1,
    "b": 2,
    "c": 3
  }
*/
console.log(obj6);
/*
  {
    "b": 2
  }
*/
console.log(obj7);
/*
  {
    "c": 3
  }
*/
console.log(obj8);
/*
  {
    "a": 1,
    "b": 2,
    "c": 3
  }
*/