Object.assign 和对象传播之间的区别
Difference between Object.assign and object spread
有
var obj = { a: 1, b: 2};
两者有什么区别
obj = Object.assign(obj, { c: 3});
和
obj = {...obj, c: 3 };
不同之处在于,在使用点差时,您总是在创建一个新对象:
const a = { name: 'Joe Bloggs' }
const b = { ...a, age: 27 };
console.log(a === b) //=> false
但是使用 Object.assign
可以改变现有对象:
const a = { name: 'Joe Bloggs' }
const b = Object.assign(a, { age: 27 });
console.log(a === b) //=> true
您仍然可以通过将空对象文字作为第一个参数传递来实现使用 Object.assign
展开的对象的行为:
const a = { name: 'Joe Bloggs' }
const b = Object.assign({}, a, { age: 27 });
console.log(a === b) //=> false
有
var obj = { a: 1, b: 2};
两者有什么区别
obj = Object.assign(obj, { c: 3});
和
obj = {...obj, c: 3 };
不同之处在于,在使用点差时,您总是在创建一个新对象:
const a = { name: 'Joe Bloggs' }
const b = { ...a, age: 27 };
console.log(a === b) //=> false
但是使用 Object.assign
可以改变现有对象:
const a = { name: 'Joe Bloggs' }
const b = Object.assign(a, { age: 27 });
console.log(a === b) //=> true
您仍然可以通过将空对象文字作为第一个参数传递来实现使用 Object.assign
展开的对象的行为:
const a = { name: 'Joe Bloggs' }
const b = Object.assign({}, a, { age: 27 });
console.log(a === b) //=> false