重点要义
对于函数参数要解构,且参数有默认值的,一律用Object.assign的思路去合并参。
看不懂这句话没关系,看下面的例子\
例子1
function fn ({ x = 1, y } = { y: 10 }) {console.log(x, y)
}
fn() // 1 10
没有传递实参,你就把{ x = 1, y }和{ y: 10 } 进行合并,得到参数值
类似于Object.assign({ x: 1, y: undefined }, { y: 10 });
例子2
function fn ({ x = 1, y } = { y: 10 }) {console.log(x, y)
}
let obj = { x: 100, y: 2 }
fn(obj) // 100 2
传递实参,你就把{ x = 1, y }和{ x: 100, y: 2 }进行合并,得到参数值