02-数据的赋值

对象赋值

用 Object.assgin() 实现浅拷贝

代码举例:

  1. const obj1 = {
  2. name: 'qianguyihao',
  3. age: 28,
  4. desc: 'hello world',
  5. };
  6. const obj2 = {
  7. name: '许嵩',
  8. sex: '男',
  9. };
  10. // 【关键代码】浅拷贝:把 obj1 赋值给 obj2。这行代码的返回值也是 obj2
  11. Object.assign(obj2, obj1);
  12. console.log(JSON.stringify(obj2));

打印结果:

  1. {
  2. "name":"qianguyihao",
  3. "sex":"男",
  4. "age":28,
  5. "desc":"hello world"
  6. }

注意,上面这行代码在实际开发中,会经常遇到,一定要掌握。它的作用是:将 obj1 的值追加到 obj2 中。如果两个对象里的属性名相同,则 obj2 中的值会被 obj1 中的值覆盖。

数组赋值

扩展运算符

  1. arr2 = arr1;

上方代码中,其实是让 arr2 指向 arr1 的地址。也就是说,二者指向的是同一个内存地址。

如果不想让 arr1 和 arr2 指向同一个内存地址,我们可以借助扩展运算符来做:

  1. let arr2 = [...arr1]; //arr2 会开辟新的内存地址

参考链接: