function processContent(options){
options = Object.assign({},DEFAULTS,options);
console.log(options);
出于assign浅拷贝的顾虑,DEFAULTS对象和options对象此时的值最好都是简单类型的值,否则函数会失效。
合并对象有 2 种方式:扩展运算符、Object.assign();扩展运算符和 Object.assign() 里面的元素是原始数据类型时,属于深拷贝;当里面的元素是引用数据类型时,属于浅拷贝;Object.is() 判断2个值是否相等属于严格比较;
此操作: 将source1、source2合并到空对象中, 相较于上边的操作, 此种方法创建了新的对象, 不会改变传入对象的值。此操作: 将 source对象合并到target中, 会改变原target的值。此操作: source被传入数组data后, 合并到target。target 是目标对象, source是要合并的对象。Object.assign() 用于实现对象属性的合并, 针对可枚举属性。关于Object.assign的更多用法 ,指路 🔜。
Object.assign()这个方法来实现浅复制
主要的用途是用来合并多个JavaScript的对象
Object.assign()接口可以接收多个参数,第一个参数是目标对象,后面的都是源对象,assign方法将多个原对象的属性和方法都合并到了目标对象上面,如果在这个过程中出现同名的属性(方法),后合并的属性(方法)会覆盖之前的同名属性(方法)
Object.assign拷贝的属性是有限制的,只会拷贝对象本身的属性(不会拷贝继承属性),也不会拷贝不可枚举的属性
Objec
let aWithOverrides = { ...a, x: 1, y: 2 };
let aWithOverrides = { ...a, ...{ x: 1, y: 2 } };
let x = 1, y = 2, aWithOverrides = { ...a, x, y };
let aWithOverrides = Object.assign({}, a, { x: 1, y: 2 });
(2). 主要的用途是用来合并多个JavaScript的对象。
(3). Object.assign()接口可以接收多个参数,第一个参数是目标对象,后面的都是源对象,assign方法将多个原对象的属性和方法都合并到了目标对象上面,如果在这个过程中出现同名的属性...
const one = {a: 1, b: 2}
const two = {c: '3', d: '4'}
var three = Object.assign({e: 5}, one, two)
打印结果: