01 .Object.assign 属性从一个或多个源对象复制到目标对象,返回修改后的对象。
PS:相同的值会被覆盖掉
js中两种变量类型
值类型
引用类型
对值类型很好理解,变量赋值如下
let a = 0;
let b = a;
// 这里a和b是两个变量
a = 100
console.log(a, b)
// 分别打印 100, 0
引用类型(或者指针类型),js中的对象就是引用类型。
我一般通过,Object.assign或者JSON.stringify来赋值新的对象变量
但是这两种方式都是有要注意的地方
let a = {name:"programer",sex:0}
let b = a
这种方式不是两个变量,本质上是一个,因为这两个变量操作的是同一个内存地址。
// 当a或b中的任一修改,两个变量同步修改
a.name = "actor"
console.log(a.name, b.name)
// 都会打印actore
接下来说一下Object.assign(参数1,参数2,[....])
const target = { a: 1, b: 2 };
const source = { b: 4, c: 5 };
const returnedTarget = Object.assign(target, source);
console.log(target);
// expected output: Object { a: 1, b: 4, c: 5 }
console.log(returnedTarget);
// expected output: Object { a: 1, b: 4, c: 5 }
console.log(source)
// expected output: Object { b:4, c:5 }